public static IDictionary GetAccessorList(MetaList metaList) { if (_accessorList == null) { IDictionary classList = metaList.ClassList; IDictionary asmList = metaList.AssemblyList; Assembly assembly = CompileCode(GetAccessorCode(classList), asmList); _accessorList = (assembly.CreateInstance("wojilu.Reflection.CodeDomAccessorUtil") as IAccessorUtil).GetAccessorList(); foreach (DictionaryEntry entry in classList) { String typeFullName = entry.Key.ToString(); IConcreteFactory factory = assembly.CreateInstance(getConcreteFactoryName(typeFullName)) as IConcreteFactory; _concreteFactoryList[typeFullName] = factory; } } return(_accessorList); }
public static IDictionary GetAccessorList(MetaList metaList) { if (_accessorList == null) { Dictionary <String, EntityInfo> classList = metaList.ClassList; Dictionary <String, Assembly> asmList = metaList.AssemblyList; Assembly assembly = CodeDomHelper.CompileCode(GetAccessorCode(classList), asmList, null); _accessorList = (assembly.CreateInstance("wojilu.Reflection.CodeDomAccessorUtil") as IAccessorUtil).GetAccessorList(); foreach (KeyValuePair <String, EntityInfo> kv in classList) { String typeFullName = kv.Key; IConcreteFactory factory = assembly.CreateInstance(getConcreteFactoryName(typeFullName)) as IConcreteFactory; _concreteFactoryList[typeFullName] = factory; } } return(_accessorList); }
/// <summary> /// 根据类型全名,创建持久化对象 /// </summary> /// <param name="typeFullName">类型的全名</param> /// <returns>返回一个 IEntity 持久化对象</returns> public static IEntity New(String typeFullName) { IConcreteFactory factory = (IConcreteFactory)MappingClass.Instance.FactoryList[typeFullName]; return(factory == null ? null : factory.New()); }