相关疑难解决方法(0)

无法使用Unity将依赖项注入ASP.NET Web API控制器

有没有人使用IoC容器运行将依赖项注入ASP.NET WebAPI控制器?我似乎无法让它发挥作用.

这就是我现在正在做的事情.

在我的global.ascx.cs:

    public static void RegisterRoutes(RouteCollection routes)
    {
            // code intentionally omitted 
    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);

        IUnityContainer container = BuildUnityContainer();

        System.Web.Http.GlobalConfiguration.Configuration.ServiceResolver.SetResolver(
            t =>
            {
                try
                {
                    return container.Resolve(t);
                }
                catch (ResolutionFailedException)
                {
                    return null;
                }
            },
            t =>
            {
                try
                {
                    return container.ResolveAll(t);
                }
                catch (ResolutionFailedException)
                {
                    return new System.Collections.Generic.List<object>();
                }
            });

        System.Web.Mvc.ControllerBuilder.Current.SetControllerFactory(new UnityControllerFactory(container)); 

        BundleTable.Bundles.RegisterTemplateBundles();
    }

    private static IUnityContainer BuildUnityContainer()
    {
        var container = new UnityContainer().LoadConfiguration();

        return container;
    }
Run Code Online (Sandbox Code Playgroud)

我的控制器工厂:

public class …
Run Code Online (Sandbox Code Playgroud)

.net c# unity-container asp.net-web-api

81
推荐指数
4
解决办法
9万
查看次数

标签 统计

.net ×1

asp.net-web-api ×1

c# ×1

unity-container ×1