0

提前感谢您的帮助。我更改为 mvc4 并开始使用 app_start/routeconfig.cs 来注册路由。

可能它与 autofac 没有任何关系,但我找不到解决方案,有没有人知道它是否需要routetable.routes在任何其他地方声明 - 我已经RouteConfig.RegisterRoutes(RouteTable.Routes);在 global.asax 中声明 - 当计划将 autofac 与 mvc4 razor 的互联网模板一起使用时?

目前我的应用程序中没有 map.route 定义。我不知道我是否必须声明一个实例

RegisterInstance(RouteTable.Routes);

太感谢了。

4

1 回答 1

1

这基本上是为 mvc 配置 Autofac 的最少代码量。你需要引用 Autofac.Integration.Mvc,如果你使用 webapi,你也需要引用 Autofac.Integration.Webapi。

public static class AutofacConfig
{
    public static IContainer Register()
    {
        var assembly = typeof(MvcApplication).Assembly;
        var builder = new ContainerBuilder();

        builder.RegisterControllers(assembly);
        // If you don't need webapi, you can omit this, else you need Autofac.Integration.Webapi
        builder.RegisterApiControllers(assembly);

        var container = builder.Build();

        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        // If you don't need webapi, you can omit this, else you need Autofac.Integration.Webapi
        var resolver = new AutofacWebApiDependencyResolver(container);
        // Configure Web API with the dependency resolver.
        GlobalConfiguration.Configuration.DependencyResolver = resolver;

        return container;
    }
}

然后在 Global.Asax 中添加

AutofacConfig.Register();

在 Application_Start 方法中作为第一个调用之一。

于 2013-02-22T17:29:11.707 回答