XmlIgnoreAttribute 类

指示 XmlSerializerSerialize 方法不序列化公共字段或公共读/写属性值。

**命名空间:**System.Xml.Serialization
**程序集:**System.Xml(在 system.xml.dll 中)

语法

声明
<AttributeUsageAttribute(AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Parameter Or AttributeTargets.ReturnValue)> _
Public Class XmlIgnoreAttribute
    Inherits Attribute
用法
Dim instance As XmlIgnoreAttribute
[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)] 
public class XmlIgnoreAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Parameter|AttributeTargets::ReturnValue)] 
public ref class XmlIgnoreAttribute : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue) */ 
public class XmlIgnoreAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue) 
public class XmlIgnoreAttribute extends Attribute

备注

XmlIgnoreAttribute 属于一个属性族,该属性族控制 XmlSerializer 如何序列化或反序列化对象。如果将 XmlIgnoreAttribute 应用于类的任何成员,则在序列化或反序列化该类的实例时 XmlSerializer 将忽略此成员。有关类似属性的完整列表,请参见 控制 XML 序列化的属性

可以通过创建一个 XmlAttributes 对象并将其 XmlIgnore 属性设置为 false 来重写由 XmlIgnoreAttribute 导致的行为。必须将 XmlAttributes 对象 AddXmlAttributeOverrides 类的实例。最后,在调用 SerializeDeserialize 方法之前必须使用 XmlAttributeOverrides 对象构造 XmlSerializer 类的实例。

当从架构文件 (.xsd) 创建类时,XML 架构定义工具 (Xsd.exe) 偶尔会生成 XmlIgnoreAttribute。产生此行为的原因在于值类型不能设置为 空引用(在 Visual Basic 中为 Nothing),但是所有 XML 数据类型都可以。因此,该工具在遇到映射到值类型的 XML 类型时创建两个字段:一个字段保存值,而另一个特殊字段则采用 fieldnameSpecified 的形式,其中 fieldname 用字段或属性的名称替换。但要注意,此特殊字段仅在下列情况下生成:架构指示无需出现该元素 (minOccurs = "0"),且该元素没有默认值。XmlSerializer 设置并检查该特殊字段以确定是否已为该字段或属性设置值。因为不得序列化该特殊字段,所以此工具将 XmlIgnoreAttribute 应用于该特殊字段。

有关使用属性的更多信息,请参见 利用属性扩展元数据

提示

在代码中,可以使用单词 XmlIgnore 来代替较长的 XmlIgnoreAttribute

示例

下面的示例显示一个名为 Group 的类,它包含一个名为 Comment 的字段。该示例将 XmlIgnoreAttribute 分配给该字段,从而指示 XmlSerializer 在序列化或反序列化该类的实例时忽略该字段。

Public Class Group
    ' the XmlSerializer ignores this field.
    <XmlIgnore()> Public Comment As String
    
    ' The XmlSerializer serializes this field.
    Public GroupName As String
End Class
public class Group
{
   // The XmlSerializer ignores this field.
   [XmlIgnore]
   public string Comment;

   // The XmlSerializer serializes this field.
   public string GroupName;
}
   
public ref class Group
{
public:

   // The XmlSerializer ignores this field.

   [XmlIgnore]
   String^ Comment;

   // The XmlSerializer serializes this field.
   String^ GroupName;
};
public class Group
{
    // The XmlSerializer ignores this field.
    /** @attribute XmlIgnore()
     */
    public String comment;
    // The XmlSerializer serializes this field.
    public String groupName;
} //Group

继承层次结构

System.Object
   System.Attribute
    System.Xml.Serialization.XmlIgnoreAttribute

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

XmlIgnoreAttribute 成员
System.Xml.Serialization 命名空间
XmlAttributeOverrides 类
XmlAttributes 类
XmlAttributes.XmlIgnore 属性
XmlSerializer
XmlAttributes 类

其他资源

介绍 XML 序列化
如何:为 XML 流指定一个备用元素名
使用属性控制 XML 序列化
XML 序列化的示例
XML 架构定义工具 (Xsd.exe)