如下
builder.RegisterType<PluginFinder>().As<IPluginFinder>().InstancePerLifetimeScope(); builder.RegisterType<MemoryCacheManager>().As<ICacheManager>().Named<ICacheManager>("nop_cache_static").SingleInstance(); builder.Register(x => x.Resolve<BaseDataProviderManager>().LoadDataProvider()).As<IDataProvider>().InstancePerDependency();
以下三个分别是什么意思?
InstancePerLifetimeScope()
.SingleInstance()
InstancePerDependency()
InstancePerLifetimeScope在一个生命周期域中,每一个依赖或调用创建一个单一的共享的实例
SingleInstance单例,每一次依赖组件或调用Resolve()方法都会得到一个相同的共享的实例
InstancePerDependency对每一个依赖或每一次调用创建一个新的唯一的实例
单一共享的实力如何理解。能简单举个例子吗?
@yzy: 就是在一个生命周期中的单例在这个生命周期里共享,用完就销毁,下一个生命周期重新创建一个单例