public static void Generate(GeneratorOptions generatorOptions) { if (generatorOptions == null) { throw new ArgumentNullException(nameof(generatorOptions)); } generatorOptions.Check(); var result = InternalUtil.GetTables(generatorOptions.DatabaseType, generatorOptions.Connection, generatorOptions.Schema, generatorOptions.TablePrefix); if (result.Item1 != null) { GeneralConstantsUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item2, result.Item1, generatorOptions); GeneralUnitOfWorkUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item2, result.Item1, generatorOptions); GeneralDomainUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item1, generatorOptions); GeneralRepositoryUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item2, result.Item1, generatorOptions); GeneralCacheUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item2, result.Item1, generatorOptions); GeneralDomainServiceUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item1, generatorOptions); GeneralApplicationUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item2, result.Item1, generatorOptions); GeneralDataTransferUtil.Start(generatorOptions.TargetFramwork, generatorOptions.BaseNameSpace, generatorOptions.IgnorePrefix, result.Item1, generatorOptions); } //将解决方法包含到项目中 InternalUtil.IncludeProject(generatorOptions.BaseNameSpace, generatorOptions.BaseProjectPath); Console.WriteLine("generator code completed."); }
public static GeneratorOptions Create(CodeClass codeClass, string baseDirPath) { var generatorOptions = new GeneratorOptions(); generatorOptions.BaseProjectPath = baseDirPath; Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); foreach (CodeAttribute classAttribute in codeClass.Attributes) { switch (classAttribute.Name.ToLower()) { //[CodeGeneratorConnection("localhost")] case "codegeneratorconnection": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.Connection = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorSchema("public")] case "codegeneratorschema": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.Schema = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorDatabaseType("public")] case "codegeneratordatabasetype": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.DatabaseType = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorTablePrefix("public")] case "codegeneratortableprefix": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.TablePrefix = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorIgnorePrefix("public")] case "codegeneratorignoreprefix": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.IgnorePrefix = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorTargetFramwork("public")] case "codegeneratortargetframwork": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.TargetFramwork = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorBaseNameSpace("public")] case "codegeneratorbasenamespace": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.BaseNameSpace = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorIsOverride(true)] case "codegeneratorisoverride": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.IsOverride = bool.Parse(classAttribute.Value.Trim().TrimStart('"').TrimEnd('"')); } break; //[CodeGeneratorBaseProjectPath("public")] case "codegeneratorbaseprojectpath": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.BaseProjectPath = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; //[CodeGeneratorIsPublished(true)] case "codegeneratorispublished": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.IsPublished = bool.Parse(classAttribute.Value.Trim().TrimStart('"').TrimEnd('"')); } break; //[CodeGeneratorWarshipVersion("1.0.0.0")] case "codegeneratorwarshipversion": if (!string.IsNullOrEmpty(classAttribute.Value?.TrimStart('"').TrimEnd('"'))) { generatorOptions.WarshipVersion = classAttribute.Value.Trim().TrimStart('"').TrimEnd('"'); } break; } } generatorOptions.Check(); return(generatorOptions); }