XmlAttributes.XmlIgnore Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение, указывающее, сериализует ли 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
Значение свойства
true
XmlSerializer Значение , если поле или свойство не должно сериализоваться; в противном случае false.
Примеры
В следующем примере сериализуется класс с именем Group, который содержит член, к Comment которому XmlIgnoreAttribute применяется. В примере создается XmlAttributes объект и присваивается XmlIgnore свойству falseзначение, тем самым переопределяя объект XmlIgnoreAttribute.
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 объект и задайте для его свойства trueзначениеXmlIgnore.
Add объект объекта XmlAttributeOverrides и укажите тип объекта, содержащего поле или свойство, которое следует игнорировать, и имя поля или свойства, которое следует игнорировать.
XmlIgnoreAttribute Если применяется к полю или свойству, поле или свойство игнорируется. Однако можно переопределить это поведение, создав XmlAttributes объект, задав его XmlIgnore свойство false, добавив его в XmlAttributeOverrides объект, указывающий тип объекта, содержащего поле или свойство, и имя поля или свойства.