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