public void WriteChoiceXml(TextWriter writer) { writer.Write(" <EnumType"); WriteAttribute(writer, "Name", Name); WriteAttribute(writer, "UnderlyingType", MetaGenerator.GetPrimitivePropertyType(typeof(string))); WriteAttribute(writer, "IsFlags", UnderlyingFieldSetting.AllowMultiple.ToString().ToLower()); writer.WriteLine(">"); var options = UnderlyingFieldSetting.Options; if (options != null) { foreach (var option in options) { writer.Write(" <Member"); WriteAttribute(writer, "Name", option.Text); WriteAttribute(writer, "Value", option.Value); writer.WriteLine("/>"); } } writer.WriteLine(" </EnumType>"); }
public void WriteEnumXml(TextWriter writer) { var isFlags = UnderlyingEnumType.GetCustomAttributes(typeof(FlagsAttribute), true).Length > 0; var names = Enum.GetNames(UnderlyingEnumType); var values = Enum.GetValues(UnderlyingEnumType); writer.Write(" <EnumType"); WriteAttribute(writer, "Name", Name); WriteAttribute(writer, "UnderlyingType", MetaGenerator.GetPrimitivePropertyType(Enum.GetUnderlyingType(UnderlyingEnumType))); WriteAttribute(writer, "IsFlags", isFlags.ToString().ToLower()); writer.WriteLine(">"); for (int i = 0; i < names.Length; i++) { writer.Write(" <Member"); WriteAttribute(writer, "Name", names[i]); WriteAttribute(writer, "Value", Convert.ChangeType(values.GetValue(i), Enum.GetUnderlyingType(UnderlyingEnumType)).ToString()); writer.WriteLine("/>"); } writer.WriteLine(" </EnumType>"); }