我有一种情况,我想在我的ASP.NET 4,MVC Web应用程序中使用动态构造函数参数解析一个类。我使用的是Unity v4.0.1。我需要传递给Resolve上的服务的构造函数的值对于每个请求是不同的,如下所示。
var obj = new MyObject();
container.RegisterType<IMyService, MyService>(
new PerRequestLifetimeManager(),
new InjectionConstructor(obj));
我如何实现这一目标?
答案 0 :(得分:1)
我可以通过here的帮助实现以下目标。
将我的类型注册为
container.RegisterType<IMyService, MyService>(new PerRequestLifetimeManager());
在我的Global.asax.cs
protected void Application_BeginRequest()
{
var obj = new MyObject();
container
.Resolve<IMyService>(
new ParameterOverrides
{
{"obj", obj},
}.OnType<MyService>()
);
}
确保将MyService
的构造函数设为
public MyService(MyObject obj){
//do something here
}