I've ran into troubles when I inserted instances on per request bases. Does anybody know why Autofac container can't allowed register instances?
rb.RegisterInstance(instance).As<interfaceOfInstance>().InstancePerRequest().
leads to InvalidOperationException with text like "The instance registration '{0}' can support SingleInstance() sharing only".
var rb = new RegistrationBuilder<T, SimpleActivatorData, SingleRegistrationStyle>(
new TypedService(typeof(T)),
new SimpleActivatorData(activator),
new SingleRegistrationStyle());
rb.SingleInstance();
builder.RegisterCallback(cr =>
{
if (!(rb.RegistrationData.Lifetime is RootScopeLifetime) ||
rb.RegistrationData.Sharing != InstanceSharing.Shared)
throw new InvalidOperationException(string.Format(
RegistrationExtensionsResources.InstanceRegistrationsAreSingleInstanceOnly, instance));
activator.DisposeInstance = rb.RegistrationData.Ownership == InstanceOwnership.OwnedByLifetimeScope;
RegistrationBuilder.RegisterSingleComponent(cr, rb);
});