Search code examples
asp.net-web-apidependency-injectioninversion-of-controlunity-container

UnityContainer: what is default lifetimemanager


I use Web API 2 and here is configuration of my unity container (i configure my rabbitmq dependencies):

container.RegisterInstance(new ConnectionFactory {
    Uri = AppSettings.RmqConnectionString
});

container.RegisterType<IConnection, AutorecoveringConnection>(
    new InjectionConstructor(typeof(ConnectionFactory), "tm.resource-server.api"),
    new InjectionMethod("Init")
);

Right now i can't figure out, what's the default lifetime of this dependencies?

What time they would be created or resolve already existing instances.

Should i use my own lifetimemanager or use already existing (PerThreadLifetimeManager for example)?


Solution

    1. RegisterInstance's default lifetime is ContainerControlledLifetimeManager
    2. RegisterType's default lifetime is TransientLifetimeManager