[AttributeUsage(AttributeTargets.Field)] |
Use the XmlEnumAttribute to change the enumeration that the XmlSerializer generates or recognizes (when it serializes or deserializes a class, respectively). For example, if an enumeration contains a member named One, but you prefer that the XML output be named Single, apply the XmlEnumAttribute to the enumeration member and set the XmlEnumAttribute.Name property to "Single".
You can override the XmlEnumAttribute.Name property value of an XmlEnumAttribute by creating an instance of the XmlEnumAttribute class, and assigning it to the XmlAttributes.XmlEnum property of an XmlAttributes object. For details, see the XmlAttributeOverrides class.
public enum EmployeeStatus { [XmlEnum(Name = "Single")] One, [XmlEnum(Name = "Double")] Two, [XmlEnum(Name = "Triple")] Three }
ctor #1 | Overloaded:.ctor() Default constructor. This constructor is called by derived class constructors to initialize state in this type.Initializes a new instance of the XmlEnumAttribute class. |
ctor #2 | Overloaded:.ctor(string name) Initializes a new instance of the XmlEnumAttribute class, and specifies the XML value that the XmlSerializer generates or recognizes (when it serializes or deserializes the enumeration, respectively). |
Name | Read-write Gets or sets the value generated in an XML-document instance when the XmlSerializer serializes an enumeration, or the value recognized when it deserializes the enumeration member. |
TypeId (inherited from System.Attribute) |
Read-only See base class member description: System.Attribute.TypeId When implemented in a derived class, gets a unique identifier for this Attribute. |
Equals (inherited from System.Object) |
See base class member description: System.Object.Equals Derived from System.Object, the primary base class for all objects. |
GetHashCode (inherited from System.Attribute) |
See base class member description: System.Attribute.GetHashCode Returns the hash code for this instance. |
GetType (inherited from System.Object) |
See base class member description: System.Object.GetType Derived from System.Object, the primary base class for all objects. |
IsDefaultAttribute (inherited from System.Attribute) |
See base class member description: System.Attribute.IsDefaultAttribute When overridden in a derived class, returns an indication whether the value of this instance is the default value for the derived class. |
Match (inherited from System.Attribute) |
See base class member description: System.Attribute.Match When overridden in a derived class, returns a value indicating whether this instance equals a specified object. |
ToString (inherited from System.Object) |
See base class member description: System.Object.ToString Derived from System.Object, the primary base class for all objects. |
Finalize (inherited from System.Object) |
See base class member description: System.Object.Finalize Derived from System.Object, the primary base class for all objects. |
MemberwiseClone (inherited from System.Object) |
See base class member description: System.Object.MemberwiseClone Derived from System.Object, the primary base class for all objects. |
Hierarchy:
public XmlEnumAttribute(); |
using System; using System.IO; using System.Xml; using System.Xml.Serialization; // This is the class that will be serialized. public class Food { public FoodType Type; } public enum FoodType { // Subsequent code overrides these enumerations. Low, High } public class Run { public static void Main() { Run test = new Run(); test.SerializeObject("OverrideEnum.xml"); test.DeserializeObject("OverrideEnum.xml"); } // Return an XmlSerializer used for overriding. public XmlSerializer CreateOverrider() { // Create the XmlOverrides and XmlAttributes objects. XmlAttributeOverrides xOver = new XmlAttributeOverrides(); XmlAttributes xAttrs = new XmlAttributes(); // Add an XmlEnumAttribute for the FoodType.Low enumeration. XmlEnumAttribute xEnum = new XmlEnumAttribute(); xEnum.Name = "Cold"; xAttrs.XmlEnum = xEnum; xOver.Add(typeof(FoodType), "Low", xAttrs); // Add an XmlEnumAttribute for the FoodType.High enumeration. xAttrs = new XmlAttributes(); xEnum = new XmlEnumAttribute(); xEnum.Name = "Hot"; xAttrs.XmlEnum = xEnum; xOver.Add(typeof(FoodType), "High", xAttrs); // Create the XmlSerializer, and return it. return new XmlSerializer(typeof(Food), xOver); } public void SerializeObject(string filename) { // Create an instance of the XmlSerializer class. XmlSerializer mySerializer = CreateOverrider(); // Writing the file requires a TextWriter. TextWriter writer = new StreamWriter(filename); // Create an instance of the class that will be serialized. Food myFood = new Food(); // Set the object properties. myFood.Type = FoodType.High; // Serialize the class, and close the TextWriter. mySerializer.Serialize(writer, myFood); writer.Close(); } public void DeserializeObject(string filename) { XmlSerializer mySerializer = CreateOverrider(); FileStream fs = new FileStream(filename, FileMode.Open); Food myFood = (Food) mySerializer.Deserialize(fs); Console.WriteLine(myFood.Type); } }
public XmlEnumAttribute( |
name
public enum EmployeeStatus { [XmlEnum("Single")] One, [XmlEnum("Double")] Two, [XmlEnum("Triple")] Three }
public string Name {get; set;}
|
public enum EmployeeStatus { [XmlEnum("Single")] One, [XmlEnum("Double")] Two, [XmlEnum("Triple")] Three }
public virtual object TypeId {get;}
|
~XmlEnumAttribute(); |
public override int GetHashCode(); |
public Type GetType(); |
public virtual bool IsDefaultAttribute(); |
The implementation of this method in a derived class compares the value of this instance to a standard, default value obtained by some means, then returns a Boolean value that indicates whether the value of this instance is equal to the standard. The standard value is typically coded as a constant in the implementation, or stored programmatically in a field used by the implementation.
obj
protected object MemberwiseClone(); |
public virtual string ToString(); |