.net – 我应该如何设计一个允许IoC的类库,但不依赖于特定的容器
我正在开发一个类库,它将在许多不同的Web应用程序中使用,甚至可能作为开源项目提供.我想在几个方面使用IoC,但我不希望类库的使用者必须使用一个特定的实现.设计此库的最佳方法是什么,以便它具有IoC的优点,但不依赖于一个IoC框架?
具体来说,此库包含依赖于各种服务接口的ASP.NET MVC控制器.我知道我可以创建一个IoCControllerFactory,但我不确定这是否是最好的方法,因为有些用户可能无法或不想在他们的应用程序中使用它只是为了获得我的库提供的功能. 解决方法
在构造函数中传递属性以用于简单方案.
对于更复杂的情况,使用Ioc容器接口,提供默认实现,但要使其足够简单,以便可以使用任何contianer实现. CommonServiceLocator就是这种界面. 编辑: 我现在推出另一个设计会使CommonServiceLocator变得无用,并且会让你的图书馆用户的整体体验变得更好: 您选择具有内部库要求所需的所有功能的Ioc容器,并将其ILMerge为内部,以便您的库用户不会看到它. 然后,您必须提供两个主要扩展点: 我发了两篇关于这个设计的完整博客文章: IOC Container,Go Hide IOC Container,Go Hider (part 2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 捕获文件名作为参数的MVC路由
- 腾讯云-容器-常用操作命令
- asp.net-mvc-4 – 在MVC4文件中上传其在DB中保存的“System
- asp.net-mvc – 读取同一域上不同主机写的cookie(在服务器上
- 如何在ASP.NET Membership Cookie中存储自定义数据
- asp.net-mvc – 如何使用具有可空类型的强类型HTML帮助程序
- asp.net打印错误日志
- (18)ASP.NET Core 基于现有数据库创建EF模型(反向工程)
- asp.net-mvc – 使用源代码的Real World ASP.NET MVC应用程
- asp.net – Web窗体中的.NET MVC FileResult等价物