XmlAttributes.XmlText Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un oggetto che fa in modo che XmlSerializer serializzi un campo pubblico o una proprietà pubblica in lettura/scrittura come testo XML.
public:
property System::Xml::Serialization::XmlTextAttribute ^ XmlText { System::Xml::Serialization::XmlTextAttribute ^ get(); void set(System::Xml::Serialization::XmlTextAttribute ^ value); };
public System.Xml.Serialization.XmlTextAttribute XmlText { get; set; }
public System.Xml.Serialization.XmlTextAttribute? XmlText { get; set; }
member this.XmlText : System.Xml.Serialization.XmlTextAttribute with get, set
Public Property XmlText As XmlTextAttribute
Valore della proprietà
Un XmlTextAttribute che esegue l'override della serializzazione predefinita di un campo pubblico o di una proprietà.
Esempio
L'esempio seguente serializza la classe denominata , che contiene un campo denominato Group
Comment
. Per eseguire l'override del modo predefinito in cui serializza XmlSerializer il campo, l'esempio crea un XmlAttributeOverrides oggetto e.XmlAttributes L'esempio crea quindi un XmlTextAttribute oggetto, che assegna alla XmlText proprietà e aggiunge l'oggetto XmlAttributes (con il nome del campo da serializzare come testo XML) all'oggetto XmlAttributeOverrides . Infine, l'esempio crea un XmlSerializer oggetto usando l'oggetto XmlAttributeOverrides .
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class Group
{
public:
String^ GroupName;
// This field will be serialized as XML text.
String^ Comment;
};
// Return an XmlSerializer to be used for overriding.
XmlSerializer^ CreateOverrider()
{
// Create the XmlAttributeOverrides and XmlAttributes objects.
XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides;
XmlAttributes^ xAttrs = gcnew XmlAttributes;
/* Create an XmlTextAttribute and assign it to the XmlText
property. This instructs the XmlSerializer to treat the
Comment field as XML text. */
XmlTextAttribute^ xText = gcnew XmlTextAttribute;
xAttrs->XmlText = xText;
xOver->Add( Group::typeid, "Comment", xAttrs );
// Create the XmlSerializer, and return it.
return gcnew XmlSerializer( Group::typeid,xOver );
}
void SerializeObject( String^ filename )
{
// Create an instance of the XmlSerializer class.
XmlSerializer^ mySerializer = CreateOverrider();
// Writing the file requires a TextWriter.
TextWriter^ writer = gcnew StreamWriter( filename );
// Create an instance of the class that will be serialized.
Group^ myGroup = gcnew Group;
// Set the object properties.
myGroup->GroupName = ".NET";
myGroup->Comment = "Great Stuff!";
// Serialize the class, and close the TextWriter.
mySerializer->Serialize( writer, myGroup );
writer->Close();
}
void DeserializeObject( String^ filename )
{
XmlSerializer^ mySerializer = CreateOverrider();
FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
Group^ myGroup = dynamic_cast<Group^>(mySerializer->Deserialize( fs ));
Console::WriteLine( myGroup->GroupName );
Console::WriteLine( myGroup->Comment );
}
int main()
{
SerializeObject( "OverrideText.xml" );
DeserializeObject( "OverrideText.xml" );
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class Group
{
public string GroupName;
// This field will be serialized as XML text.
public string Comment;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("OverrideText.xml");
test.DeserializeObject("OverrideText.xml");
}
// Return an XmlSerializer to be used for overriding.
public XmlSerializer CreateOverrider()
{
// Create the XmlAttributeOverrides and XmlAttributes objects.
XmlAttributeOverrides xOver = new XmlAttributeOverrides();
XmlAttributes xAttrs = new XmlAttributes();
/* Create an XmlTextAttribute and assign it to the XmlText
property. This instructs the XmlSerializer to treat the
Comment field as XML text. */
XmlTextAttribute xText = new XmlTextAttribute();
xAttrs.XmlText = xText;
xOver.Add(typeof(Group), "Comment", xAttrs);
// Create the XmlSerializer, and return it.
return new XmlSerializer(typeof(Group), xOver);
}
public void SerializeObject(string filename)
{
// Create an instance of the XmlSerializer class.
XmlSerializer mySerializer = CreateOverrider();
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter(filename);
// Create an instance of the class that will be serialized.
Group myGroup = new Group();
// Set the object properties.
myGroup.GroupName = ".NET";
myGroup.Comment = "Great Stuff!";
// Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup);
writer.Close();
}
public void DeserializeObject(string filename)
{
XmlSerializer mySerializer = CreateOverrider();
FileStream fs = new FileStream(filename, FileMode.Open);
Group myGroup = (Group)
mySerializer.Deserialize(fs);
Console.WriteLine(myGroup.GroupName);
Console.WriteLine(myGroup.Comment);
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
' This is the class that will be serialized.
Public Class Group
Public GroupName As String
' This field will be serialized as XML text.
Public Comment As String
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeObject("OverrideText.xml")
test.DeserializeObject("OverrideText.xml")
End Sub
' Return an XmlSerializer to be used for overriding.
Public Function CreateOverrider() As XmlSerializer
' Create the XmlAttributeOverrides and XmlAttributes objects.
Dim xOver As New XmlAttributeOverrides()
Dim xAttrs As New XmlAttributes()
' Create an XmlTextAttribute and assign it to the XmlText
' property. This instructs the XmlSerializer to treat the
' Comment field as XML text.
Dim xText As New XmlTextAttribute()
xAttrs.XmlText = xText
xOver.Add(GetType(Group), "Comment", xAttrs)
' Create the XmlSerializer, and return it.
Return New XmlSerializer(GetType(Group), xOver)
End Function
Public Sub SerializeObject(ByVal filename As String)
' Create an instance of the XmlSerializer class.
Dim mySerializer As XmlSerializer = CreateOverrider()
' Writing the file requires a TextWriter.
Dim writer As New StreamWriter(filename)
' Create an instance of the class that will be serialized.
Dim myGroup As New Group()
' Set the object properties.
myGroup.GroupName = ".NET"
myGroup.Comment = "Great Stuff!"
' Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup)
writer.Close()
End Sub
Public Sub DeserializeObject(ByVal filename As String)
Dim mySerializer As XmlSerializer = CreateOverrider()
Dim fs As New FileStream(filename, FileMode.Open)
Dim myGroup As Group = CType(mySerializer.Deserialize(fs), Group)
Console.WriteLine(myGroup.GroupName)
Console.WriteLine(myGroup.Comment)
End Sub
End Class
Commenti
Per impostazione predefinita, una proprietà pubblica di lettura/scrittura pubblica viene serializzata come elemento XML in base a XmlSerializer. Tuttavia, può forzare la serializzazione del campo o della proprietà come testo XML applicando un XmlTextAttribute oggetto al campo o alla proprietà.
Nota
Impossibile XmlTextAttribute applicare a un campo o a una proprietà che restituisce una matrice.
Per eseguire l'override della serializzazione predefinita di un campo o di una proprietà (che non restituisce una matrice), creare un oggetto XmlTextAttribute e assegnarlo alla XmlText proprietà di un XmlAttributes oggetto. Aggiungere l'oggetto XmlAttributes a un XmlAttributeOverrides oggetto e specificare il tipo dell'oggetto contenente il campo o la proprietà sottoposto a override e il nome del campo o della proprietà sottoposto a override.