Пример #1
0
        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);
        }
Пример #2
0
        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);
        }