XmlArrayItemAttribute.IsNullable Vlastnost

Definice

Získává nebo nastavuje hodnotu, která indikuje, jestli XmlSerializer musí člen serializovat jako prázdnou značku XML s xsi:nil atributem nastaveným na true .Gets or sets a value that indicates whether the XmlSerializer must serialize a member as an empty XML tag with the xsi:nil attribute set to true.

public:
 property bool IsNullable { bool get(); void set(bool value); };
public bool IsNullable { get; set; }
member this.IsNullable : bool with get, set
Public Property IsNullable As Boolean

Hodnota vlastnosti

Boolean

true Pokud XmlSerializer atribut vygeneruje, v xsi:nil opačném případě se false nevygeneruje žádná instance.true if the XmlSerializer generates the xsi:nil attribute; otherwise, false, and no instance is generated. Výchozí formát je true.The default is true.

Příklady

Následující příklad serializovat třídu s názvem Group , která obsahuje pole s názvem Employees , které vrací pole Employee objektů.The following example serializes a class named Group, which contains a field named Employees that returns an array of Employee objects. Druhá třída s názvem Manager je odvozena z Employee .A second class named Manager derives from Employee. XmlArrayItemAttributeUrčuje, že XmlSerializer může do pole vložit obojí i Employee Manager objekty.An XmlArrayItemAttribute specifies that the XmlSerializer can insert both Employee and Manager objects into the array. Příklad nastaví IsNullable vlastnost, čímž oznámí, že XmlSerializer nemá generovat xsi:nil objekty atributů v poli nastaveném na null .The example sets the IsNullable property, thereby telling the XmlSerializer not to generate the xsi:nil attribute objects in the array set to null.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;

public ref class Employee
{
public:
   String^ Name;
};

public ref class Manager: public Employee
{
public:
   int Level;
};

public ref class Group
{
public:

   [XmlArray(IsNullable=true)]
   [XmlArrayItem(Manager::typeid,IsNullable=false),
   XmlArrayItem(Employee::typeid,IsNullable=false)]
   array<Employee^>^Employees;
};

void SerializeObject( String^ filename )
{
   XmlSerializer^ s = gcnew XmlSerializer( Group::typeid );

   // To write the file, a TextWriter is required.
   TextWriter^ writer = gcnew StreamWriter( filename );

   // Creates the object to serialize.
   Group^ group = gcnew Group;

   // Creates a null Manager object.
   Manager^ mgr = nullptr;

   // Creates a null Employee object.
   Employee^ y = nullptr;
   array<Employee^>^temp = {mgr,y};
   group->Employees = temp;

   // Serializes the object and closes the TextWriter.
   s->Serialize( writer, group );
   writer->Close();
}

int main()
{
   SerializeObject( "TypeDoc.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;

public class Group
{
   [XmlArray(IsNullable = true)]
   [XmlArrayItem(typeof(Manager), IsNullable = false),
   XmlArrayItem(typeof(Employee), IsNullable = false)]
   public Employee[] Employees;
}

public class Employee
{
   public string Name;
}

public class Manager:Employee
{
   public int Level;
}

public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("TypeDoc.xml");
   }

   public void SerializeObject(string filename)
   {
      XmlSerializer s = new XmlSerializer(typeof(Group));

      // To write the file, a TextWriter is required.
      TextWriter writer = new StreamWriter(filename);

      // Creates the object to serialize.
      Group group = new Group();

      // Creates a null Manager object.
      Manager mgr = null;

      // Creates a null Employee object.
      Employee y = null;

      group.Employees = new Employee[2] {mgr, y};

      // Serializes the object and closes the TextWriter.
      s.Serialize(writer, group);
      writer.Close();
   }
}

Option Explicit
Option Strict

Imports System.IO
Imports System.Xml.Serialization


Public Class Group
    <XmlArray(IsNullable := True), _
     XmlArrayItem(GetType(Manager), IsNullable := False), _
     XmlArrayItem(GetType(Employee), IsNullable := False)> _
    Public Employees() As Employee
End Class

Public Class Employee
    Public Name As String
End Class

Public Class Manager
    Inherits Employee
    Public Level As Integer
End Class


Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("TypeDoc.xml")
    End Sub    
    
    Public Sub SerializeObject(filename As String)
        Dim s As New XmlSerializer(GetType(Group))
        
        ' To write the file, a TextWriter is required.
        Dim writer As New StreamWriter(filename)
        
        ' Creates the object to serialize.
        Dim group As New Group()
        
        ' Creates a null Manager object.
        Dim mgr As Manager = Nothing
        
        ' Creates a null Employee object.
        Dim y As Employee = Nothing
        
        group.Employees = New Employee() {mgr, y}
        
        ' Serializes the object and closes the TextWriter.
        s.Serialize(writer, group)
        writer.Close()
    End Sub
End Class

Poznámky

Specifikace schématu XML pro struktury umožňuje dokumentu XML explicitně signalizovat, že obsah elementu chybí.The XML schema specification for structures allows an XML document to explicitly signal that an element's content is missing. Takový element obsahuje atribut xsi:nil nastavený na true .Such an element contains the attribute xsi:nil set to true. Další informace naleznete v tématu konsorcium World Wide Web Specification s názvem XML Schema Part 1: struktury.For more information, see the World Wide Web Consortium specification titled XML Schema Part 1: Structures.

Pokud IsNullable je vlastnost true , xsi:nil je vygenerován atribut pro členy třídy, které byly nastaveny na hodnotu null .If the IsNullable property is true, the xsi:nil attribute is generated for class members that have been set to null. Například pokud nastavíte pole s názvem MyStringArray na null , XmlSerializer vygeneruje následující kód XML.For example, if you set a field named MyStringArray to null, the XmlSerializer generates the following XML code.

<MyStringArray xsi:nil = "true" />  

Pokud IsNullable je vlastnost false , není vygenerován žádný element XML.If the IsNullable property is false, no XML element is generated.

Poznámka

Vlastnost nelze použít IsNullable u člena zadaného jako typ hodnoty, protože typ hodnoty nemůže obsahovat null .You cannot apply the IsNullable property to a member typed as a value type because a value type cannot contain null.

Platí pro