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);
        }
示例#3
0
        /// <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());
        }