相关疑难解决方法(0)

仅仅为Owned <T>在我的项目中引用Autofac是不好的设计?

我最近成为了Autofac的OwnedInstances功能的重要用户.例如,我用它来提供一个工厂来为我的数据库创建一个工作单元,这意味着我依赖于UnitOfWork工厂的类要求类型的对象:

Func<Owned<IUnitOfWork>>
Run Code Online (Sandbox Code Playgroud)

这非常有用 - 非常适合将IDisposable保留在我的界面之外 - 但它需要付出代价:因为Owned <>是Autofac程序集的一部分,我必须在我知道Owned <>的每个项目中引用Autofac. ,并在每个代码文件中添加"使用Autofac.Features.OwnedInstances".

Func <>具有内置于.NET框架的巨大好处,因此我毫不怀疑将Func用作通用工厂包装器是可以的.但Owned <>在Autofac程序集中,每次我使用它时,我都会创建一个对Autofac的硬引用(即使我在接口方法参数中对Autofac的唯一引用是Owned <>类型).

我的问题是:这是件坏事吗?这会开始以某种方式让我回头,我还没有考虑到这一点吗?有时我会有一个由许多其他项目引用的项目,因此我自然需要将其依赖关系尽可能接近零; 我是通过将Func <OwnedOfWork >>(实际上是一个数据库事务提供程序)传递给这些接口中的方法(否则将是autofac-nonnostic)来做恶的?

也许如果Owned <>是一个内置的.NET类型,这整个困境会消失吗?(我是否应该屏住呼吸?)

c# idisposable autofac

10
推荐指数
2
解决办法
2142
查看次数

标签 统计

autofac ×1

c# ×1

idisposable ×1