XmlArrayItemAttribute.IsNullable Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která označuje, zda XmlSerializer musí serializovat člen jako prázdnou xml značku s atributem nastavena xsi:nil
na 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
true
XmlSerializer pokud vygeneruje xsi:nil
atribut; v opačném případě false
není vygenerována žádná instance. Výchozí formát je true
.
Příklady
Následující příklad serializuje třídu s názvem Group
, která obsahuje pole s názvem Employees
, které vrací pole Employee
objektů. Druhá třída pojmenovaná Manager
odvozuje od Employee
. Určuje XmlArrayItemAttribute , že XmlSerializer lze do pole vložit objekty Employee
i Manager
objekty. Příklad nastaví IsNullable vlastnost, čímž říká XmlSerializer , že negenerovat xsi:nil
objekty atributu v matici nastavena na 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 chybí obsah elementu. Takový prvek obsahuje atribut xsi:nil
nastavený na true
. Další informace naleznete ve specifikaci konsorcia World Wide Web Consortium s názvem SCHÉMA XML část 1: Struktury.
IsNullable Pokud je true
vlastnost , xsi:nil
atribut je generován pro členy třídy, které byly nastaveny na null
. Pokud například nastavíte pole s názvem MyStringArray
null
na , vygeneruje XmlSerializer následující kód XML.
<MyStringArray xsi:nil = "true" />
Pokud je IsNullable false
vlastnost , není vygenerován žádný element XML.
Poznámka
Vlastnost nelze použít IsNullable u člena zadaného jako typ hodnoty, protože typ hodnoty nemůže obsahovat null
.