private static string GenerateProperties(PropertyInfo[] properties) { string gettersAndSetters = ""; foreach (PropertyInfo property in properties) { GetterAttribute getter = property.GetCustomAttribute <GetterAttribute>(); SetterAttribute setter = property.GetCustomAttribute <SetterAttribute>(); if (getter != null || setter != null) { gettersAndSetters += GenerateGetterAndSetter(property, getter, setter); } } return(gettersAndSetters); }
private static string GenerateGetterAndSetter(PropertyInfo property, GetterAttribute getter, SetterAttribute setter) { string getterSetterField = ""; if (getter != null) { getterSetterField += "[Getter(\"" + getter.Name + "\")]\n"; } if (setter != null) { getterSetterField += "[Setter(\"" + setter.Name + "\")]\n"; getterSetterField += GenerateSetterValues(property); } getterSetterField += GenerateLocalization(property); string typeName; using (var provider = new CSharpCodeProvider()) { var typeRef = new CodeTypeReference(property.PropertyType); typeName = provider.GetTypeOutput(typeRef); } getterSetterField += "public " + typeName + " " + property.Name + " {\n"; if (getter != null) { getterSetterField += "get { return _object." + property.Name + "; }\n"; } if (setter != null) { getterSetterField += "set { _object." + property.Name + " = value; }\n"; } getterSetterField += "}\n\n"; return(getterSetterField); }