我使用 .Net Framework 4.7 和
UnityDependencyResolver
。我的客户编写了一个以 Enum 作为参数的构造函数,并且 UnityDependencyResolver
无法初始化此构造函数。
我猜 Enum 参数是问题的原因。我尝试使用关键字“UnityDependencyResolver无法解析Enum”进行搜索,但找不到任何解释。
有人可以给我准确的信息或令人满意的解释吗?期待帮助。
自从我写.NET 中的依赖注入以来已经很久了,我已经不再记得它是如何工作的,但根据它:
从概念上讲,将字符串或数字注册为容器中的组件并不总是有意义。然而,使用 Unity 这至少是可能的。
举个例子,考虑一下这个构造函数:
public ChiliConCarne(Spiciness spiciness)
在此示例中,
是一个枚举:Spiciness
public enum Spiciness { Mild = 0, Medium, Hot }
[...]
如果您希望
的所有消费者都使用相同的值,您可以分别注册Spiciness
和Spiciness
:ChiliConCarne
container.RegisterInstance(Spiciness.Medium); container.RegisterType<ICourse, ChiliConCarne>();
当您随后解析
时,它将具有ChiliConCarne
Medium
,所有其他具有依赖于Spiciness
的组件也是如此。Spiciness
您是否已向容器注册了
enum
值?