我试图根据将在此对象中接收的string
或int
来解决使用Unity容器在对象中接收到的类型。这样我就可以根据类型实现逻辑。以下是我尝试在Unity中注册的内容,但是在Unity容器中使用typeof()
时,出现错误,表明无法注册。
反正我可以团结起来吗?
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));
答案 0 :(得分:0)
您要命名注册(使用字符串作为名称,而不是类型):
unityContainer.RegisterType<IActionResolver, IntResolver>(typeof(int).FullName);
和
IActionResolver GetResolver( object x )
{
return unityContainer.Resolve<IActionResolver>( x.GetType().FullName );
}