我正在尝试使用Unity容器,基于我将在该对象中接收的string
或int
来解析在对象中接收到的类型。这样我就可以实现基于类型的逻辑。以下是我试图在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));
您想要名称您的注册(使用字符串作为名称,而不是类型(:
unityContainer.RegisterType<IActionResolver, IntResolver>(typeof(int).FullName);
和
IActionResolver GetResolver( object x )
{
return unityContainer.Resolve<IActionResolver>( x.GetType().FullName );
}