如何处理Autofac容器?

Iva*_*ono 5 c# autofac asp.net-web-api

我有一个静态类来设置Autofac注册,其方法在Application_Start中调用。像这样:

public static class RegisterAutofac
{
    public static void Setup()
    {
        var config = GlobalConfiguration.Configuration;
        var builder = new ContainerBuilder();

        //Do registration here...

        var container = builder.Build();
        var resolver = new AutofacWebApiDependencyResolver(container);

        GlobalConfiguration.Configuration.DependencyResolver = resolver;
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还没有找到处理容器的示例。

这是否足够?还是应该返回容器,然后在Global.asax的Dispose方法中处置容器?

Ign*_*cia 3

在这种情况下,您不需要调用它,因为它AutofacWebApiDependencyResolver已经是 IDisposable 并接收容器作为依赖项。当你dispose时它会调用DisposeAutofacWebApiDependencyResolver

AutofacWebApiDependencyResolver 将由系统自动处置,因为 Configuration 中的 HttpConfiguration 对象已经处置了它。

希望能帮助到你。