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 を作成し、それを XmlAttributes の XmlAttribute プロパティに代入し、 XmlAttributes オブジェクトを XmlAttributeOverrides オブジェクトに代入します。
XmlElementAttribute 、 XmlAttributeAttribute 、 XmlArrayAttribute 、 XmlArrayItemAttribute 、または 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