0
有兩個問題Autofac。 .Build後RegisterType和註冊/決心列表
- 如何正確builder.RegisterType(..)之後ApplicationContainer = builder.Build()
builder.Update(ApplicationContainer)是過時
public IServiceProvider ConfigureServices(IServiceCollection services)
{
...
builder.RegisterType<DB>();
ApplicationContainer = builder.Build();
}
public void Configure()
{
//Get list of types assigned from IPlugin
List<Type> types = PluginLoader.LoadPlugins(); <--- will need DB registered early
foreach (var item in plugins)
{
builder.RegisterType(item);
}
builder.Update(ApplicationContainer); <-- .Update() is Obsolete
}
- 如何獲得所有IPlugin
- 解決按類型在任何地方
public Manage(DB _db, IEnumerable<IPlugin> plugins)
{
}
public void Manage(Type type)
{
var IPlugin plugin = (IPlugin) GlobalResolve.Resolve(type);
}
更新您的現有配置後,它是一個壞主意,這就是爲什麼該方法已過時。您應該將插件加載到ConfigureServices方法中。 – Steven
@Steven我需要DB(和其他註冊)在PluginLoaderbuilder.RegisterType(); –
在ConfigureServices中手動創建'PluginLoader'。 – Steven