基于Unity容器中的特定类型解析对象的问题



我正在尝试使用Unity容器,基于我将在该对象中接收的stringint来解析在对象中接收到的类型。这样我就可以实现基于类型的逻辑。以下是我试图在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 );
}

最新更新