XmlAttributes.XmlIgnore Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob XmlSerializer ein öffentliches Feld oder eine öffentliche Lese-/Schreibeigenschaft serialisiert, oder legt diesen fest.
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
Eigenschaftswert
true
, wenn XmlSerializer das Feld oder die Eigenschaft nicht serialisieren soll, andernfalls false
.
Beispiele
Im folgenden Beispiel wird eine Klasse namens Group
"Serialisiert", die ein Element mit dem Namen Comment
enthält, auf das die XmlIgnoreAttribute Anwendung angewendet wird. Im Beispiel wird ein XmlAttributes Objekt erstellt, und die XmlIgnore Eigenschaft wird false
so festgelegt, dass die XmlIgnoreAttributeEigenschaft überschrieben wird.
#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
Hinweise
Standardmäßig werden alle öffentlichen Felder und öffentliche Lese-/Schreibeigenschaften durch die XmlSerializer. Das heißt, der Wert jedes öffentlichen Felds oder jeder Eigenschaft wird als XML-Element oder XML-Attribut in einer XML-Dokumentinstanz beibehalten.
Um die Standard serialisierung eines Felds oder einer Eigenschaft außer Kraft zu setzen, erstellen Sie ein XmlAttributes Objekt, und legen Sie dessen XmlIgnore Eigenschaft auf true
fest. Add das Objekt eines XmlAttributeOverrides Objekts und den Typ des Zu ignorierenden Objekts und den Namen des zu ignorierenden Felds oder der Eigenschaft angeben.
Wenn ein XmlIgnoreAttribute Feld oder eine Eigenschaft angewendet wird, wird das Feld oder die Eigenschaft ignoriert. Sie können dieses Verhalten jedoch außer Kraft setzen, indem Sie ein XmlAttributes Objekt erstellen, XmlIgnore dessen Eigenschaft false
festlegen und zu einem XmlAttributeOverrides Objekt hinzufügen, das den Typ des Objekts angibt, der das Feld oder die Eigenschaft enthält, und den Namen des Felds oder der Eigenschaft.