XmlAttributes.XmlIgnore プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
XmlSerializer がパブリック フィールドまたは読み書き可能なパブリック プロパティをシリアル化するかどうかを指定する値を取得または設定します。
public:
property bool XmlIgnore { bool get(); void set(bool value); };
public bool XmlIgnore { get; set; }
member this.XmlIgnore : bool with get, set
Public Property XmlIgnore As Boolean
プロパティ値
XmlSerializer がそのフィールドまたはプロパティをシリアル化しない場合は true
。それ以外の場合は false
。
例
次の例では、適用先のメンバーを含む、という Group
名前 Comment
のクラスを XmlIgnoreAttribute シリアル化します。 この例では、オブジェクトをXmlAttributes作成し、プロパティをfalse
XmlIgnore設定してXmlIgnoreAttribute、 .
#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 ref 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 = gcnew XmlAttributeOverrides;
XmlAttributes^ attrs = gcnew XmlAttributes;
/* Setting XmlIgnore to false overrides the XmlIgnoreAttribute
applied to the Comment field. Thus it will be serialized.*/
attrs->XmlIgnore = false;
xOver->Add( Group::typeid, "Comment", attrs );
/* Use the XmlIgnore to instruct the XmlSerializer to ignore
the GroupName instead. */
attrs = gcnew XmlAttributes;
attrs->XmlIgnore = true;
xOver->Add( Group::typeid, "GroupName", attrs );
XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,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 = gcnew Group;
myGroup->GroupName = ".NET";
myGroup->Comment = "My Comment...";
// Writing the file requires a TextWriter.
TextWriter^ writer = gcnew StreamWriter( filename );
// Serialize the object and close the TextWriter.
xSer->Serialize( writer, myGroup );
writer->Close();
}
int main()
{
SerializeObject( "IgnoreXml.xml" );
}
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();
}
}
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
注釈
既定では、すべてのパブリック フィールドとパブリックの読み取り/書き込みプロパティは XmlSerializer、. つまり、各パブリック フィールドまたはプロパティの値は、XML ドキュメント インスタンス内の XML 要素または XML 属性として永続化されます。
フィールドまたはプロパティの既定のシリアル化をオーバーライドするには、オブジェクトを XmlAttributes 作成し、その XmlIgnore プロパティを true
. Add オブジェクトをオブジェクトに XmlAttributeOverrides 指定し、無視するフィールドまたはプロパティを含むオブジェクトの型と、無視するフィールドまたはプロパティの名前を指定します。
XmlIgnoreAttributeフィールドまたはプロパティに適用されている場合、フィールドまたはプロパティは無視されます。 ただし、その動作をオーバーライドするには、オブジェクトを作成し XmlAttributes 、そのプロパティを XmlIgnore 設定し false
、フィールドまたはプロパティを含むオブジェクトの型とフィールドまたはプロパティの名前を指定するオブジェクトに追加 XmlAttributeOverrides します。