UnityDependencyResolver 无法解析 Enum

问题描述 投票:0回答:1

我使用 .Net Framework 4.7 和

UnityDependencyResolver
。我的客户编写了一个以 Enum 作为参数的构造函数,并且
UnityDependencyResolver
无法初始化此构造函数。

我猜 Enum 参数是问题的原因。我尝试使用关键字“UnityDependencyResolver无法解析Enum”进行搜索,但找不到任何解释。

有人可以给我准确的信息或令人满意的解释吗?期待帮助。

.net unity-container
1个回答
0
投票

自从我写.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
值?

© www.soinside.com 2019 - 2024. All rights reserved.