gpt4 book ai didi

c# - Enterprise Library Unity 和数据访问 block

转载 作者:行者123 更新时间:2023-11-30 16:34:37 25 4
gpt4 key购买 nike

我正在学习企业库 DAL。

据我了解,我可以通过以下方式访问我的数据数据库 db = DatabaseFactory.CreateDatabase();
也通过统一容器解析器。

如果我可以使用 DatabaseFactory 做同样的事情,我不明白为什么我需要统一容器?
使用unity有什么好处?

最佳答案

Unity 容器不仅仅是配置和创建企业库对象。 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;
}
}

在上面的示例中,Unity 容器将自动为您创建成员级变量 _em、_db 和 _sa。您可以在配置文件中注册任何映射到您的接口(interface)的具体类型。您甚至可以配置 Unity 在调用者和目标对象之间放置代理对象,这些对象可以执行日志记录、跟踪等操作...(策略注入(inject))

依赖注入(inject)和策略注入(inject)是复杂的主题,因此我鼓励您阅读 EntLib 和 Unity 附带的 Unity 文档。如果您在系统的关键区域使用 Unity,您将在模拟和单元测试、横切关注点、检测和健康监控方面拥有很大的灵 active 。

关于c# - Enterprise Library Unity 和数据访问 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2392272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com