Configurazione degli Unity built-in life time manager
Scritto da
Simone Di Stasio il
lunedì 19 dicembre 2011
•
Linguaggio:
• Livello: 200
Configurazione attraverso file di configurazione
(app.config/web.config) :
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<typeAliases>
<!-- Lifetime manager types -->
<typeAlias alias="Transient" type="Microsoft.Practices.Unity.TransientLifetimeManager,Microsoft.Practices.Unity"/>
<typeAlias alias="Singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager,Microsoft.Practices.Unity"/>
<typeAlias alias="PerResolve" type="Microsoft.Practices.Unity.PerResolveLifetimeManager,Microsoft.Practices.Unity"/>
<typeAlias alias="PerThread" type="Microsoft.Practices.Unity.PerThreadLifetimeManager,Microsoft.Practices.Unity"/>
<typeAlias alias="Hierarchical" type="Microsoft.Practices.Unity.HierarchicalLifetimeManager,Microsoft.Practices.Unity"/>
<typeAlias alias="External" type="Microsoft.Practices.Unity.ExternallyControlledLifetimeManager,Microsoft.Practices.Unity"/>
<!-- User-defined type aliases -->
<typeAlias alias="IMyService" type="Namespace.Type, Namespace" />
</typeAliases>
<container>
<register type="IMyService" mapTo="Namespace.Type, Namespace">
<lifetime type="Singleton" />
</register>
</container>
</unity>
Configurazione attraverso fluent interface
C#
container.RegisterType<IMyService, Service>(new ContainerControlledLifetimeManager());
container.RegisterType<IMyService, Service>(new PerResolveLifetimeManager());
container.RegisterType<IMyService, Service>(new PerThreadLifetimeManager());
container.RegisterType<IMyService, Service>(new HierarchicalLifetimeManager());
container.RegisterType<IMyService, Service>(new ExternallyControlledLifetimeManager());
Tags: Unity