Ton*_*y98 6 c# singleton unity-container
在Unity中,据我所知,我可以使用以下两个选项来注册单例实例:
IConfiguration globalConfig = new Configuration();
container.RegisterInstance<IConfiguration>(globalConfig);
container.RegisterType<IConfiguration, Configuration>(new ContainerControlledLifetimeManager());
Run Code Online (Sandbox Code Playgroud)
这两种方式有什么区别吗?注册单例实例的首选方法是什么?
Tip*_*ipx 10
第一种方式是注册实例.您必须在执行此操作时创建对象的实例.
第二种方式不是单身人士.它是"容器或其任何子容器的任何分辨率的单例".它将第一次解决将"修复对象的状态"并注册任何进一步的分辨率LifetimeManager.
例如,假设您有以下类:
class AA
{
public Datetime When { get; set; }
public AA()
{
this.When = Datetime.Now;
}
}
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,When将在注册之前,在第二种情况下,只要您实际解析该类型/接口.
| 归档时间: |
|
| 查看次数: |
4235 次 |
| 最近记录: |