次の方法で共有


XmlAttributeOverrides.Add メソッド (Type, String, XmlAttributes)

XmlAttributes オブジェクトを XmlAttributes オブジェクトのコレクションに追加します。type パラメータは、オーバーライドされるオブジェクトを指定します。member パラメータは、オーバーライドされるメンバの名前を指定します。

Overloads Public Sub Add( _
   ByVal type As Type, _   ByVal member As String, _   ByVal attributes As XmlAttributes _)
[C#]
public void Add(Typetype,stringmember,XmlAttributesattributes);
[C++]
public: void Add(Type* type,String* member,XmlAttributes* attributes);
[JScript]
public function Add(
   type : Type,member : String,attributes : XmlAttributes);

パラメータ

  • type
    オーバーライドするオブジェクトの Type
  • member
    オーバーライドするメンバの名前。
  • attributes
    オーバーライドする側の属性を表す XmlAttributes オブジェクト。

解説

XmlAttributes オブジェクトには、属性オブジェクトの共用体があります。この属性オブジェクトに基づいて、オブジェクトの既定のシリアル化動作は XmlSerializer によってオーバーライドされます。オーバーライドする必要がある特定の動作に応じて、 XmlAttributes オブジェクトに配置する属性オブジェクトを選択します。たとえば、XmlSerializer は既定ではクラス メンバを XML 要素としてシリアル化します。メンバを XmlAttribute としてシリアル化する必要がある場合は、 XmlAttributeAttribute を作成し、それを XmlAttributesXmlAttribute プロパティに代入し、 XmlAttributes オブジェクトを XmlAttributeOverrides オブジェクトに代入します。

XmlElementAttributeXmlAttributeAttributeXmlArrayAttributeXmlArrayItemAttribute 、または XmlIgnoreAttribute のオーバーライドを試みるときに、このメソッドを使用します。

使用例

[Visual Basic, C#, C++] XmlAttributeAttribute オブジェクトを作成し、そのオブジェクトを XmlAttributes オブジェクトの XmlAttribute プロパティに代入する例を次に示します。この例では、次に XmlAttributes オブジェクトを XmlAttributeOverrides オブジェクトに追加してから XmlSerializer を作成します。

 
' This is the class that will be serialized.
Public Class Group
    Public GroupName As String
    <XmlAttribute()> Public GroupCode As Integer
End Class

Public Class Sample
    
    Public Function CreateOverrider() As XmlSerializer
        ' Create an XmlAttributeOverrides object. 
        Dim xOver As New XmlAttributeOverrides()
        
        ' Create an XmlAttributeAttribute to override the base class
        ' object's XmlAttributeAttribute object. Give the overriding object
        ' a new attribute name ("Code").
        Dim xAtt As New XmlAttributeAttribute()
        xAtt.AttributeName = "Code"
        
        ' Create an instance of the XmlAttributes class and set the
        ' XmlAttribute property to the XmlAttributeAttribute object. 
        Dim attrs As New XmlAttributes()
        attrs.XmlAttribute = xAtt
        
        ' Add the XmlAttributes object to the XmlAttributeOverrides
        ' and specify the type and member name to override. 
        xOver.Add(GetType(Group), "GroupCode", attrs)
        
        Dim xSer As New XmlSerializer(GetType(Group), xOver)
        Return xSer
    End Function
End Class


[C#] 
// This is the class that will be serialized.
public class Group
{
   public string GroupName;
   [XmlAttribute]
   public int GroupCode;
}

public class Sample
{
public XmlSerializer CreateOverrider()
{
   // Create an XmlAttributeOverrides object. 
   XmlAttributeOverrides xOver = new XmlAttributeOverrides();

   /* Create an XmlAttributeAttribute to override the base class
   object's XmlAttributeAttribute object. Give the overriding object
   a new attribute name ("Code"). */
   XmlAttributeAttribute xAtt = new XmlAttributeAttribute();
   xAtt.AttributeName = "Code";

   /* Create an instance of the XmlAttributes class and set the 
   XmlAttribute property to the XmlAttributeAttribute object. */
   XmlAttributes attrs = new XmlAttributes();
   attrs.XmlAttribute = xAtt;

   /* Add the XmlAttributes object to the XmlAttributeOverrides
      and specify the type and member name to override. */
   xOver.Add(typeof(Group), "GroupCode", attrs);

   XmlSerializer xSer = new XmlSerializer(typeof(Group), xOver);
   return xSer;
}
}

[C++] 
// This is the class that will be serialized.
public __gc class Group
{
public:
   String* GroupName;
   [XmlAttributeAttribute]
   int GroupCode;
};

public __gc class Sample
{
public:
   XmlSerializer* CreateOverrider()
   {
      // Create an XmlAttributeOverrides object. 
      XmlAttributeOverrides* xOver = new XmlAttributeOverrides();

      /* Create an XmlAttributeAttribute to override the base class
      object's XmlAttributeAttribute object. Give the overriding object
      a new attribute name ("Code"). */
      XmlAttributeAttribute* xAtt = new XmlAttributeAttribute();
      xAtt->AttributeName = S"Code";

      /* Create an instance of the XmlAttributes class and set the 
      XmlAttribute property to the XmlAttributeAttribute object. */
      XmlAttributes* attrs = new XmlAttributes();
      attrs->XmlAttribute = xAtt;

      /* Add the XmlAttributes object to the XmlAttributeOverrides
      and specify the type and member name to override. */
      xOver->Add(__typeof(Group), S"GroupCode", attrs);

      XmlSerializer* xSer = new XmlSerializer(__typeof(Group), xOver);
      return xSer;
   }
};

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

XmlAttributeOverrides クラス | XmlAttributeOverrides メンバ | System.Xml.Serialization 名前空間 | XmlAttributeOverrides.Add オーバーロードの一覧 | XmlAttributes | XmlSerializer