相关疑难解决方法(0)

IoC容器,在编译时检查错误

我有一个简单的问题.

假设我有一个.Net解决方案,有不同的项目,比如一些类库(bll,dal等)和一个可以是web应用程序或wpf应用程序的主项目,这没关系.

现在假设我想使用IoC容器(如Windsor,Ninject,Unity等)来解析验证器,存储库,通用接口实现等问题.

我把它们放在一起.编译并运行良好.然后,有一天,我添加了一个新服务,在我的代码中,我只是尝试通过IoC容器解决它.事实是,我忘记在IoC配置中注册它.

所有内容都会编译,应用程序将被部署并运行.一切正常,除了页面的代码要求容器的新服务,容器回答"嘿,我对此服务一无所知".

您将记录您的错误,以及用户友好的错误页面.您将检查错误,查看问题并进行修复.很标准.

现在让我们说我们想要改进这个过程,并且在某种程度上能够在编译时知道我们期望IoC容器处理的每个服务是否在代码中正确注册.

怎么能实现这一目标?有一件事,单元测​​试被排除在可能的答案之外,我正在寻找另一种方式,如果确实存在的话.

思考?

编辑 - 经过一些回答和评论,似乎单元测试确实是实现此功能的唯一方法.

我想知道的是,如果单元测试 - 由于任何原因 - 不可能,因此IoC无法在编译时进行测试,这是否会阻止您使用IoC容器并选择在代码中进行直接实例化?我的意思是,您是否认为使用IoC和后期绑定太不安全和冒险,并认为其优势被这个"缺陷"所超越?

.net error-handling dependency-injection build inversion-of-control

12
推荐指数
1
解决办法
1741
查看次数