XmlAttributes.XmlIgnore プロパティ
XmlSerializer がパブリック フィールドまたは読み書き可能なパブリック プロパティをシリアル化するかどうかを指定する値を取得または設定します。
Public Property XmlIgnore As Boolean
[C#]
public bool XmlIgnore {get; set;}
[C++]
public: __property bool get_XmlIgnore();public: __property void set_XmlIgnore(bool);
[JScript]
public function get XmlIgnore() : Boolean;public function set XmlIgnore(Boolean);
プロパティ値
XmlSerializer がフィールドまたはプロパティをシリアル化しない場合は true 。それ以外の場合は false 。
解説
既定では、すべてのパブリック フィールドおよび読み書き可能なパブリック プロパティは XmlSerializer によってシリアル化されます。つまり、各パブリック フィールドまたはプロパティの値は、XML ドキュメント インスタンスの XML 要素または XML 属性として永続化されます。
フィールドまたはプロパティの既定のシリアル化をオーバーライドするには、 XmlAttributes オブジェクトを作成し、その XmlIgnore プロパティを true に設定します。無視するフィールドまたはプロパティを含むオブジェクトの型、および無視するフィールドまたはプロパティの名前を指定して、 Add メソッドによって、オブジェクトを XmlAttributeOverrides オブジェクトに追加します。
XmlIgnoreAttribute をフィールドまたはプロパティに適用すると、そのフィールドまたはプロパティは無視されます。ただし、 XmlAttributes オブジェクトを作成して、その XmlIgnore プロパティを false に設定して、フィールドまたはプロパティを含むオブジェクトの型、およびフィールドまたはプロパティの名前を指定して、作成したオブジェクトを XmlAttributeOverrides オブジェクトに追加することにより、この動作をオーバーライドできます。
使用例
[Visual Basic, C#, C++] XmlIgnoreAttribute が適用されている Group という名前のメンバを含む Comment という名前のクラスをシリアル化する例を次に示します。この例では、 XmlAttributes オブジェクトを作成し、 XmlIgnore プロパティを false に設定して、 XmlIgnoreAttribute をオーバーライドします。
Imports System
Imports System.IO
Imports System.Xml.Serialization
' This is the class that will be serialized.
Public Class Group
' The GroupName value will be serialized--unless it's overridden.
Public GroupName As String
' This field will be ignored when serialized--
' unless it's overridden.
<XmlIgnoreAttribute()> Public Comment As String
End Class
Public Class Test
Public Shared Sub Main()
Dim t As New Test()
t.SerializeObject("IgnoreXml.xml")
End Sub
' Return an XmlSerializer used for overriding.
Public Function CreateOverrider() As XmlSerializer
' Create the XmlAttributeOverrides and XmlAttributes objects.
Dim xOver As New XmlAttributeOverrides()
Dim attrs As New XmlAttributes()
' Setting XmlIgnore to false overrides the XmlIgnoreAttribute
' applied to the Comment field. Thus it will be serialized.
attrs.XmlIgnore = False
xOver.Add(GetType(Group), "Comment", attrs)
' Use the XmlIgnore to instruct the XmlSerializer to ignore
' the GroupName instead.
attrs = New XmlAttributes()
attrs.XmlIgnore = True
xOver.Add(GetType(Group), "GroupName", attrs)
Dim xSer As New XmlSerializer(GetType(Group), xOver)
Return xSer
End Function
Public Sub SerializeObject(ByVal filename As String)
' Create an XmlSerializer instance.
Dim xSer As XmlSerializer = CreateOverrider()
' Create the object to serialize and set its properties.
Dim myGroup As New Group()
myGroup.GroupName = ".NET"
myGroup.Comment = "My Comment..."
' Writing the file requires a TextWriter.
Dim writer As New StreamWriter(filename)
' Serialize the object and close the TextWriter.
xSer.Serialize(writer, myGroup)
writer.Close()
End Sub
End Class
[C#]
using System;
using System.IO;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class Group
{
// The GroupName value will be serialized--unless it's overridden.
public string GroupName;
/* This field will be ignored when serialized--
unless it's overridden. */
[XmlIgnoreAttribute]
public string Comment;
}
public class Test
{
public static void Main()
{
Test t = new Test();
t.SerializeObject("IgnoreXml.xml");
}
// Return an XmlSerializer used for overriding.
public XmlSerializer CreateOverrider()
{
// Create the XmlAttributeOverrides and XmlAttributes objects.
XmlAttributeOverrides xOver = new XmlAttributeOverrides();
XmlAttributes attrs = new XmlAttributes();
/* Setting XmlIgnore to false overrides the XmlIgnoreAttribute
applied to the Comment field. Thus it will be serialized.*/
attrs.XmlIgnore = false;
xOver.Add(typeof(Group), "Comment", attrs);
/* Use the XmlIgnore to instruct the XmlSerializer to ignore
the GroupName instead. */
attrs = new XmlAttributes();
attrs.XmlIgnore = true;
xOver.Add(typeof(Group), "GroupName", attrs);
XmlSerializer xSer = new XmlSerializer(typeof(Group), xOver);
return xSer;
}
public void SerializeObject(string filename)
{
// Create an XmlSerializer instance.
XmlSerializer xSer = CreateOverrider();
// Create the object to serialize and set its properties.
Group myGroup = new Group();
myGroup.GroupName = ".NET";
myGroup.Comment = "My Comment...";
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter(filename);
// Serialize the object and close the TextWriter.
xSer.Serialize(writer, myGroup);
writer.Close();
}
}
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public __gc class Group
{
public:
// The GroupName value will be serialized--unless it's overridden.
String* GroupName;
/* This field will be ignored when serialized--
unless it's overridden. */
[XmlIgnoreAttribute]
String* Comment;
};
// Return an XmlSerializer used for overriding.
XmlSerializer* CreateOverrider()
{
// Create the XmlAttributeOverrides and XmlAttributes objects.
XmlAttributeOverrides* xOver = new XmlAttributeOverrides();
XmlAttributes* attrs = new XmlAttributes();
/* Setting XmlIgnore to false overrides the XmlIgnoreAttribute
applied to the Comment field. Thus it will be serialized.*/
attrs->XmlIgnore = false;
xOver->Add(__typeof(Group), S"Comment", attrs);
/* Use the XmlIgnore to instruct the XmlSerializer to ignore
the GroupName instead. */
attrs = new XmlAttributes();
attrs->XmlIgnore = true;
xOver->Add(__typeof(Group), S"GroupName", attrs);
XmlSerializer* xSer = new XmlSerializer(__typeof(Group), xOver);
return xSer;
}
void SerializeObject(String* filename)
{
// Create an XmlSerializer instance.
XmlSerializer* xSer = CreateOverrider();
// Create the object to serialize and set its properties.
Group* myGroup = new Group();
myGroup->GroupName = S".NET";
myGroup->Comment = S"My Comment...";
// Writing the file requires a TextWriter.
TextWriter* writer = new StreamWriter(filename);
// Serialize the object and close the TextWriter.
xSer->Serialize(writer, myGroup);
writer->Close();
}
int main()
{
SerializeObject(S"IgnoreXml.xml");
}
[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 ファミリ
参照
XmlAttributes クラス | XmlAttributes メンバ | System.Xml.Serialization 名前空間 | XmlIgnoreAttribute