C# 如何使用Unity在ASP.NET Web API 2控制器中使用依赖项注入?

C# 如何使用Unity在ASP.NET Web API 2控制器中使用依赖项注入?,c#,asp.net-web-api,dependency-injection,unity-container,.net-framework-version,C#,Asp.net Web Api,Dependency Injection,Unity Container,.net Framework Version,在Visual Studio 2019中,我创建了一个ASP.NET Web API项目。我创建了一个WebAPI2控制器。我遵循这一点,并使用Unity实现依赖注入 我已经根据链接1共享了代码,但它不起作用。我在UnityResolver的方法GetService(Type serviceType)中得到一个错误(我从第一个链接复制了该方法) 错误是: 引发异常:Unity.Container.dll中的“Unity.ResolutionFailedException” 我使用断点检查了这个问

在Visual Studio 2019中,我创建了一个ASP.NET Web API项目。我创建了一个WebAPI2控制器。我遵循这一点,并使用Unity实现依赖注入

我已经根据链接1共享了代码,但它不起作用。我在
UnityResolver
的方法
GetService(Type serviceType)
中得到一个错误(我从第一个链接复制了该方法)

错误是:

引发异常:Unity.Container.dll中的“Unity.ResolutionFailedException”

我使用断点检查了这个问题。尽管容器不是null,但它返回null

我已经找了这么久了。我不明白哪里错了,或者我做错了什么

我对.NET框架和编程都是新手。感谢您的帮助或建议

public object GetService(Type serviceType)
{
        try
        {
            return container.Resolve<Type>();
            //return container.Resolve(serviceType);
        }
        catch (ResolutionFailedException)
        {
            return null;
        }
}
WebApiConfig.cs

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
        var container = new UnityContainer();
        container.RegisterType<IAgent, Agent>();
        config.DependencyResolver = new UnityResolver(container);
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

我也有同样的问题。有人知道怎么了吗?我也有同样的问题。有人知道怎么了吗?
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
        var container = new UnityContainer();
        container.RegisterType<IAgent, Agent>();
        config.DependencyResolver = new UnityResolver(container);
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}
public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}