private void GenerateHandlers() { var module = ReadModule(); var assembly = Assembly.LoadFrom(_oldName); var models = DbEntry.GetAllModels(assembly); if (models.Count <= 0) { Console.WriteLine("Can not find any model to generate handler !"); } var handler = new KnownTypesHandler(module); foreach (var type in models) { Program.ModelClass = type.FullName; if (Program.ModelClass != null) { var model = module.GetType(Program.ModelClass.Replace('+', '/')); var generator = new ModelHandlerGenerator(type, model, handler); var mh = generator.Generate(); module.Types.Add(mh); var mhg = new MemberHandlerGenerator(type, model, handler); mhg.Generate(module); new ModelRelationFixer(type, model).Process(); } } module.CustomAttributes.Add(handler.GetAssemblyProcessed()); WriteAssembly(module, _name); }
public static void EnumTypes(string fileName, bool needStrongName, Func <Type, bool> callback) { Assembly dll = Assembly.LoadFile(fileName); if (needStrongName) { if (dll.FullName.EndsWith(", PublicKeyToken=null")) { throw new DataException("The assembly should have strong name."); } } var ts = DbEntry.GetAllModels(dll); foreach (Type t in ts) { if (!callback(t)) { break; } } }