我正在.NET Core项目中使用Unity DI。我已经根据以下文档配置了DbContext
:
在我的Program.cs
中:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUnityServiceProvider()
.UseStartup<Startup>()
.Build();
在我的Startup.cs
中:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<Model>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
在这里,Model
来自DbContext
。一切正常。我想尝试使用ConfigureContainer()
方法来实现相同的目的。例如,
public void ConfigureContainer(IUnityContainer container)
{
container.RegiserType<DbContext>(new InjectionFactory(options => new Model(options)))
}
这可能吗?注射工厂的定义如下:
public InjectionFactory(Func<IUnityContainer, object> factoryFunc);
public InjectionFactory(Func<IUnityContainer, Type, string, object> factoryFunc);
我想知道这是否可以通过反射或其他方式完成??