Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于依赖项注入的Unity容器抛出异常,但Web API仍然有效_C#_Asp.net Web Api_Unity Container - Fatal编程技术网

C# 用于依赖项注入的Unity容器抛出异常,但Web API仍然有效

C# 用于依赖项注入的Unity容器抛出异常,但Web API仍然有效,c#,asp.net-web-api,unity-container,C#,Asp.net Web Api,Unity Container,我正在使用.NETFramework 4.5.2构建一个非常小的web API。在VisualStudio中,我以空的形式启动项目,并引用了WebAPI2。我想利用依赖注入,所以我做了Microsoft在中解释的所有事情,并将Unity包括在我的项目中一切正常,API按预期运行并发送预期响应,但是。。。在Visual Studio“输出”选项卡中,我注意到许多异常在启动API后立即被静默引发(“Eccezione generata”表示“异常引发”): 这让我很烦。我担心API的稳定性和可靠性。

我正在使用.NETFramework 4.5.2构建一个非常小的web API。在VisualStudio中,我以空的形式启动项目,并引用了WebAPI2。我想利用依赖注入,所以我做了Microsoft在中解释的所有事情,并将Unity包括在我的项目中一切正常API按预期运行并发送预期响应,但是。。。在Visual Studio“输出”选项卡中,我注意到许多异常在启动API后立即被静默引发(“Eccezione generata”表示“异常引发”): 这让我很烦。我担心API的稳定性和可靠性。以下是DI过程中涉及的代码

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // As explained in the tutorial
        var container = new UnityContainer();
        container.RegisterType<IDecrypter, Decrypter>(new HierarchicalLifetimeManager());
        container.RegisterType<IMyRepository, MyRepository>(new HierarchicalLifetimeManager());
        config.DependencyResolver = new UnityResolver(container);
        // Routing follows...
    }
}
用于访问数据库的存储库

public interface IMyRepository
{
    // Interface Methods...
}

public abstract class BaseRepository
{
    private readonly IDecrypter Decrypter;

    public BaseRepository(IDecrypter decrypter)
    {
        Decrypter = decrypter;
        // More code...
    }

    // More code...
}

public class MyRepository : BaseRepository, IMyRepository
{
    public MyRepository(IDecrypter decrypter) : base(decrypter)
    { }

    // Implementations of the interface methods...
}
API是唯一的控制器:

public class MyController : ApiController
{
    private readonly IMyRepository myRepository;

    public MyController(IMyRepository _myRepository)
    {
        myRepository = _myRepository;
    }
} 

有人知道发生了什么吗?

如源代码@Nkosi所示,这些错误很可能在解析器中被消耗。我看到代码捕获了
ResolutionFailedException
,但是
InvalidOperationException
呢?“我应该担心吗?”斯塔克劳埃德说,我也做过同样的事。但它没有起作用。你找到解决办法了吗?
public class MyController : ApiController
{
    private readonly IMyRepository myRepository;

    public MyController(IMyRepository _myRepository)
    {
        myRepository = _myRepository;
    }
}