Raj*_*Raj 5 asp.net-mvc autofac
我刚刚开始试用Autofac,我觉得我在解决具体课程时感到困惑.
我已设法将我的接口注册到我的Concrete类,如下所示
builder.RegisterType<TestClass>().As<ITest>();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Run Code Online (Sandbox Code Playgroud)
这很好.我遇到的问题是如何在我的mvc控制器中获取此实例?我读过的大多数内容都说我需要创建一个新的ContainerBuilder实例,然后调用scope.Resolve方法,但这肯定是不好的做法,并且每个控制器都不需要它?
我认为混淆是何时以及如何访问'Container',以便我可以在需要时调用resolve方法.
你可能已经猜到了,我是这里的新手!
Dav*_*idG 10
一种方法是使用控制器构造函数,因为Autofac将为您处理:
public class MyController : Controller
{
private ITest _test;
public MyController(ITest test)
{
_test = test;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您不想使用构造函数并为您注入依赖项,则可以在控制器操作方法中执行此操作:
var test = DependencyResolver.Current.GetService<ITest>()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4182 次 |
| 最近记录: |