【发布时间】:2019-04-30 07:51:00
【问题描述】:
我正在尝试根据 string 或 int 来解析使用 Unity 容器在对象中接收到的类型,我将在此对象中接收这些类型。这样我就可以根据类型实现逻辑。以下是我尝试在 Unity 中注册的内容,但在 Unity 容器中使用 typeof() 时,我收到错误消息,指出我无法注册。
无论如何我可以使用 unity 做到这一点吗?
public interface IActionResolver
{
void Resolve(object item);
}
public class StringResolver : IActionResolver
{
public void Resolve(object item)
{
}
}
public class IntResolver : IActionResolver
{
public void Resolve(object item)
{
}
}
在 Unity 中我尝试像这样注册..
unityContainer.RegisterType<IActionResolver, StringResolver>(typeof(string));
unityContainer.RegisterType<IActionResolver, IntResolver>(typeof(int));
【问题讨论】:
-
请添加异常消息和 Unity 抛出的堆栈跟踪,并更清楚地说明您要解决的问题是什么。就目前而言,不清楚你在问什么。
-
出现此编译时错误 - “无法从 'System.Type' 转换为“Microsoft.Practices.Unity.InjectionMember”
-
正如我在上面提到的,我将在对象中接收字符串或 int 类型。这里我试图通过在统一容器中设置该类型来添加解析器,以便在运行时获得这个对象它包含字符串或整数,我将调用 IActionResolver 的此 resolve() 方法,该方法将执行 StringResolver 或 IntResolver。希望我没有混淆
标签: c# .net dependency-injection unity-container