Produces instances for a given registration. Instances of this type are generally created by the container when calling one of the Register overloads. Instances can be retrieved by calling GetCurrentRegistrations() or GetRegistration(Type, bool).
Assembly: SimpleInjector (in SimpleInjector.dll) Version: 4.2.1
Thetype exposes the following members.
Initializes a new instance of theclass.
Gets the Registration instance for this instance.
Gets the service type for which this producer produces instances.
Builds an expression that expresses the intent to get an instance by the current producer. A call to this method locks the container. No new registrations can't be made after a call to this method.
Creates a new serviceType and expression where the expression will be used as-is; no interception (using ExpressionBuilt) such as decorators will be applied.based on the given
Produces an instance.
Gets the collection of relationships for this instance that the container knows about. This includes relationships between the registered type and its dependencies and relationships between applied decorators and their dependencies. Note that types that are not newed up by the container and properties that are injected inside a custom delegate that is registered using the RegisterInitializer method are unknown to the container and are not returned from this method. Also note that this method will return an empty collection when called before the registered type is requested from the container (or before Verify is called).
Builds a string representation of the object graph with the current instance as root of the graph.
however, will wrap that instance in a (transient)
var container = new Container(); // ServiceImpl implements both Interface1 and Interface2. var registration = Lifestyle.Singleton.CreateRegistration<ServiceImpl, ServiceImpl>(container); var producer1 = new InstanceProducer(typeof(Interface1), registration); var producer2 = new InstanceProducer(typeof(Interface2), registration); container.RegisterDecorator(typeof(Interface1), typeof(Interface1Decorator)); var instance1 = (Interface1)producer1.GetInstance(); var instance2 = (Interface2)producer2.GetInstance(); Assert.IsInstanceOfType(instance1, typeof(Interface1Decorator)); Assert.IsInstanceOfType(instance2, typeof(ServiceImpl)); Assert.AreSame(((Interface1Decorator)instance1).DecoratedInstance, instance2);