我想将我的所有代码与我选择的 IoC 容器库(Unity)隔离开来。为此,我创建了一个公开 Register() 和 Resolve() 的 IContainer 接口。我创建了一个名为 UnityContainerAdapter 的类,它实现了 IContainer 并包装了真实的容器。所以只有定义了 UnityContainerAdapter 的程序集才知道 Unity 库。
我的孤立思想有漏洞。Unity 搜索类型成员的属性以了解在何处注入依赖项。我见过的大多数 IoC 库也支持这一点。我遇到的问题是我想使用该功能,但我不希望我的类依赖于 Unity 特定属性。
您对如何解决此问题有任何建议吗?
理想情况下,我会创建自己的 [Dependency] 属性并在我的代码中使用该属性。但是我需要告诉真正的容器搜索我的属性而不是它自己的属性。