我在我的一个项目中实现了Microsoft Unity应用程序块。
Project的Unity配置文件是:
<UnityConfiguration xmlns="http://schemas.microsoft.com/practices/2010/unity">
<container>
<register type="IInputAdapterPoc" mapTo="InputAdapterPoc" />
</container>
<alias alias="IInputAdapterPoc" type="Company.Product.Pocc.IInputAdapterPoc,Company.Product.Pocc" />
<alias alias="InputAdapterPoc" type="Company.Product.Pocc.InputAdapterPoc,Company.Product.Pocc" />
Project的Interface和concreate类:
namespace Company.Product.Pocc
{
public class InputAdapterPoc : BaseInputAdapter, IInputAdapterPoc
{
public override void Process(Connector _connector) { }
public override void Intialize(Entity _entity) { }
}
}
namespace Company.Product.Pocc
{
public interface IInputAdapterPoc : IInputAdapter { }
}
namespace Company.Product.Interface
{
public interface IInputAdapter : IAdapter
{
void Process(Connector connect);
}
}
namespace Company.Product.Adapter
{
public abstract class BaseInputAdapter : IInputAdapter
{
public abstract void Process(Connector connect);
public abstract void Intialize(Entity entityMapping);
}
}
问题是 - 执行代码时:
var instance = new UnityContainer().Resolve<AnyType>();
它会抛出异常:
异常类型: System.TypeInitializationException
的InnerException: {“无法解析类型名称或别名IInputAdapterPoc。请检查您的配置文件并验证此类型名称。”}
消息:
'Company.Product.Utility.UnityHelper'的类型初始化程序引发了异常。
我该如何解决这个问题?有什么想法吗?