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