public void Read(ConfigurationBase configurationBase, List <ITransferObject> transferObjects) { ReflectionReadConfiguration configuration = (ReflectionReadConfiguration)configurationBase; Type type = GeneratorTypeLoader.Get(configuration, configuration.Assembly, configuration.Namespace, configuration.Name); if (type != null) { ModelTransferObject selfModel = this.modelReader.Read(type, transferObjects); if (configuration.SkipSelf) { transferObjects.Remove(selfModel); Logger.Trace($"{selfModel.Name} ({selfModel.Namespace}) skipped through configuration"); } } }
public void Read(ReflectionReadConfiguration configuration, IOptions caller = null) { Type type = GeneratorTypeLoader.Get(configuration.Assembly, configuration.Namespace, configuration.Name); if (type == null) { Logger.Trace($"Class {configuration.Namespace}.{configuration.Name} not found"); return; } ModelTransferObject selfModel = this.modelReader.Read(type, caller); IOptions modelOptions = this.options.Get(selfModel); if (configuration.OnlySubTypes || modelOptions.OnlySubTypes) { modelOptions.OnlySubTypes = true; } }
public bool Generate(CommandConfiguration configuration, IOutput output) { //Type type = reflectionConfiguration.GetType(); //foreach (CommandParameter parameter in configuration.Parameters) //{ // PropertyInfo propertyInfo = type.GetProperty(parameter.Name); // if (propertyInfo != null && propertyInfo.CanWrite) // { // propertyInfo.SetValue(reflectionConfiguration, ); // } //} if (configuration.Parameters.GetBool("fromAttributes") || configuration.Parameters.GetBool("fromAttribute")) { string assemblyName = configuration.Parameters.GetString(nameof(ReflectionReadConfiguration.Assembly)); if (!string.IsNullOrEmpty(assemblyName)) { Assembly.LoadFile(assemblyName); } foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type objectType in this.GetTypes(assembly)) { foreach (GenerateAttribute attribute in objectType.GetCustomAttributes <GenerateAttribute>()) { ILanguage language = attribute.Language == OutputLanguage.Inherit ? configuration.Language : attribute.Language == OutputLanguage.Csharp ? (ILanguage)CsharpLanguage.Instance : TypeScriptLanguage.Instance; if (!language.IsCsharp() && !language.IsTypeScript()) { Logger.Error($"No language for type {objectType.Name} set. Set a language via attribute or use parameter (-language=Csharp)"); return(false); } ReflectionReadConfiguration readConfiguration = new ReflectionReadConfiguration(); readConfiguration.CopyBaseFrom(configuration); readConfiguration.Language = language; readConfiguration.Name = objectType.Name; readConfiguration.Namespace = objectType.Namespace; readConfiguration.Assembly = objectType.Assembly.Location; readConfiguration.SkipSelf = attribute is GenerateIndexAttribute; List <ITransferObject> transferObjects = new List <ITransferObject>(); this.reader.Read(readConfiguration, transferObjects); ReflectionWriteConfiguration writeConfiguration = new ReflectionWriteConfiguration(); writeConfiguration.CopyBaseFrom(configuration); writeConfiguration.Namespace = objectType.Namespace; writeConfiguration.RelativePath = attribute.RelativePath ?? configuration.Parameters.GetString(nameof(ReflectionWriteConfiguration.RelativePath)); writeConfiguration.SkipNamespace = attribute.SkipNamespace.ToBool(configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.SkipNamespace))); writeConfiguration.PropertiesToFields = attribute.PropertiesToFields.ToBool(configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.PropertiesToFields))); writeConfiguration.FieldsToProperties = attribute.FieldsToProperties.ToBool(configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.FieldsToProperties))); writeConfiguration.FormatNames = attribute.FormatNames.ToBool(configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.FormatNames))); this.writer.Write(writeConfiguration, transferObjects, output); } } } } else { ReflectionReadConfiguration readConfiguration = new ReflectionReadConfiguration(); readConfiguration.CopyBaseFrom(configuration); readConfiguration.Name = configuration.Parameters.GetString(nameof(ReflectionReadConfiguration.Name)); readConfiguration.Namespace = configuration.Parameters.GetString(nameof(ReflectionReadConfiguration.Namespace)); readConfiguration.Assembly = configuration.Parameters.GetString(nameof(ReflectionReadConfiguration.Assembly)); List <ITransferObject> transferObjects = new List <ITransferObject>(); this.reader.Read(readConfiguration, transferObjects); ReflectionWriteConfiguration writeConfiguration = new ReflectionWriteConfiguration(); writeConfiguration.CopyBaseFrom(configuration); writeConfiguration.Namespace = configuration.Parameters.GetString(nameof(ReflectionReadConfiguration.Namespace)); writeConfiguration.RelativePath = configuration.Parameters.GetString(nameof(ReflectionWriteConfiguration.RelativePath)); writeConfiguration.Using = configuration.Parameters.GetString(nameof(ReflectionWriteConfiguration.Using)); writeConfiguration.SkipNamespace = configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.SkipNamespace)); writeConfiguration.PropertiesToFields = configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.PropertiesToFields)); writeConfiguration.FieldsToProperties = configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.FieldsToProperties)); writeConfiguration.FormatNames = configuration.Parameters.GetBool(nameof(ReflectionWriteConfiguration.FormatNames)); this.writer.Write(writeConfiguration, transferObjects, output); } return(true); }