Waq*_*qas 8 .net singleton ioc-container unity-container
我正在实施Ioc,我想确保一些正确的事情.
RegisterInstance,在解析它时将始终返回单例对象?但我想知道如何
1.每个解析创建一个单独的实例,PerResolve不能使用RegisterInstance,它只适用于RegisterType.
2.如果我将依赖对象作为静态属性,它将以相同的方式工作,如果我能够为每个解析创建单独的实例?
请帮忙?
public class ClientUser : UserServiceBase, IClientUser
{
private IDataServiceManager _dataServiceManager;
public ClientUser()
{
}
private IDataServiceManager DataServiceMgr
{
get
{
if (_dataServiceManager == null)
_dataServiceManager = ProjectContainer.Instance.Resolve<IDataServiceManager>();
return _dataServiceManager;
}
}
Run Code Online (Sandbox Code Playgroud)
Lad*_*nka 13
RegisterInstance如果您想要PerResolve实例化,则无法使用.使用RegisterInstance哪个将始终返回对象的相同实例(即注册实例的点)或使用RegisterType和定义PerResolveLifetimeManager.
RegisterInstance默认使用ContainerControlledLifetimeManager.唯一有意义的终身经理RegisterInstance是ExternallyControlledLifetimeManager.
TransientLifetimeManager并且PerResolveLifetimeManager没有意义,因为这些生命周期必须在每次打电话时创建新实例Resolve.
PerThreadLifetimeManager 在您不控制线程的情况下没用.