<span style="font-family: Arial, Helvetica, sans-serif;">一个project 中用到Ibatis做数据持久层,可以正常运行。但是将这个project引用到另一个solution中时,就会报错。</span>
追踪到ibatis内核代码中,发现IBatisNet.Common.Utilities.TypesResolver类中有一个LoadTypeByIteratingOverAllLoadedAssemblies方法,它的作用就是用反射的方式为TypeAlias节点map出对应的自定义实体类。
private static Type LoadTypeByIteratingOverAllLoadedAssemblies(TypeAssemblyInfo typeInfo)
{
Type type = null;
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly assembly in assemblies)
{
type = assembly.GetType(typeInfo.TypeName, false, false);
if (type != null)
{
return type;
}
}
return type;