英語で読む

次の方法で共有


XmlEnumAttribute コンストラクター

定義

XmlEnumAttribute クラスの新しいインスタンスを初期化します。

オーバーロード

XmlEnumAttribute()

XmlEnumAttribute クラスの新しいインスタンスを初期化します。

XmlEnumAttribute(String)

XmlEnumAttribute クラスの新しいインスタンスを初期化し、XmlSerializer が生成する (列挙体をシリアル化する場合) または認識する (列挙体を逆シリアル化する場合) XML 値を指定します。

XmlEnumAttribute()

ソース:
XmlEnumAttribute.cs
ソース:
XmlEnumAttribute.cs
ソース:
XmlEnumAttribute.cs

XmlEnumAttribute クラスの新しいインスタンスを初期化します。

C#
public XmlEnumAttribute();

次の例では、 と という名前 Food の 2 つのクラスを FoodTypeシリアル化します。 クラスにはFoodTypeオーバーライドされる 2 つの列挙体が含まれており、列挙ごとに、オブジェクトの プロパティにXmlEnum割り当てられたオブジェクトをXmlAttributes作成XmlEnumAttributeします。 次に、 オブジェクトを XmlAttributes オブジェクトに XmlAttributeOverrides 追加します。このオブジェクトは、 を XmlSerializer作成するために使用されます。

C#
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);
   }
}

注釈

XmlEnumAttribute 使用して、既存の列挙体をオーバーライドできます。

注意

長い XmlEnumAttributeではなく、コードで 単語XmlEnumを使用できます。

こちらもご覧ください

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

XmlEnumAttribute(String)

ソース:
XmlEnumAttribute.cs
ソース:
XmlEnumAttribute.cs
ソース:
XmlEnumAttribute.cs

XmlEnumAttribute クラスの新しいインスタンスを初期化し、XmlSerializer が生成する (列挙体をシリアル化する場合) または認識する (列挙体を逆シリアル化する場合) XML 値を指定します。

C#
public XmlEnumAttribute(string name);
C#
public XmlEnumAttribute(string? name);

パラメーター

name
String

オーバーライドする側の列挙体メンバーの名前。

次の例では、 を XmlEnumAttribute 列挙体のメンバーに適用します。 XmlSerializerによってこの列挙体の XML データが生成されると、データはプロパティのName値に準拠します。

C#
public enum EmployeeStatus
{
   [XmlEnum("Single")]
   One,
   [XmlEnum("Double")]
   Two,
   [XmlEnum("Triple")]
   Three
}

注釈

注意

長い XmlEnumAttributeではなく、コードで 単語XmlEnumを使用できます。

こちらもご覧ください

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0