C#-企业库统一和数据访问块
作者:互联网
我正在学习企业图书馆DAL.
据我了解,我可以通过访问我的数据
数据库db = DatabaseFactory.CreateDatabase();
以及通过统一容器解析器
如果我可以使用DatabaseFactory进行相同的操作,我为什么不知道为什么需要统一容器?
使用团结的好处是什么?
解决方法:
统一容器不仅仅是配置和创建企业库对象. Unity可以自动为您创建对象的一种方法是,只需在构造函数中声明所需的对象.
public class Foo
{
IExceptionManager _em;
IDatabase _db;
IServiceAgent _sa; // custom made service agent for accessing some other web service
public Foo(IExceptionManager em, IDatabase db, IServiceAgent _sa)
{
_em = em;
_db = db;
_sa = sa;
}
}
在上面的示例中,成员级别变量_em,_db和_sa将由Unity容器自动为您创建.您可以在配置文件中注册映射到接口的任何具体类型.您甚至可以将Unity配置为在调用者和目标对象之间放置代理对象,该代理对象可以执行日志记录,跟踪等操作(策略注入).
依赖注入和策略注入是复杂的主题,因此我鼓励您阅读EntLib和Unity随附的Unity文档.如果您在系统的关键区域中使用Unity,那么在模拟&单元测试,横切关注点,仪器和健康监控.
标签:enterprise-library,c 来源: https://codeday.me/bug/20191210/2100081.html