我有以下方法:
public void RegisterPlugin<T1>() where T1 : IWebrolePlugin
{
try
{
_container.RegisterType<T1>(new ContainerControlledLifetimeManager());
_container.RegisterType<IWebrolePlugin, T1>(typeof(T1).Name,new ContainerControlledLifetimeManager());
}catch(Exception e)
{
Trace.TraceError(e.ToString());
}
}
我的问题是,当我执行 _container.Resolve() 时,我得到了 SomePlugin 的相同实例,但是当使用以下注入构造函数时,它会解析新实例。
我也有以下注册:
_container.RegisterType<WebsiteManager>(new InjectionConstructor(typeof(IDirectoryManager), typeof(IStore), typeof(IWebrolePlugin[])));
我的问题是 IWebrolePlugin[] 的数组是新实例。我能用我的方法做任何事吗
public T GetPlugin<T>() where T : IWebrolePlugin
{
return _container.Resolve<T>();
}
将返回 WebsiteManager 在其构造函数中获得的相同实例?