XmlAnyElementAttributes Classe

Definição

Representa uma coleção de objetos XmlAnyElementAttribute .Represents a collection of XmlAnyElementAttribute objects.

public ref class XmlAnyElementAttributes : System::Collections::CollectionBase
public class XmlAnyElementAttributes : System.Collections.CollectionBase
type XmlAnyElementAttributes = class
    inherit CollectionBase
Public Class XmlAnyElementAttributes
Inherits CollectionBase
Herança
XmlAnyElementAttributes

Exemplos

O exemplo a seguir cria um XmlAnyElementAttribute novo e o adiciona à coleção de objetos acessados XmlAnyElements por meio da propriedade.The following example creates a new XmlAnyElementAttribute and adds it to the collection of objects accessed through the XmlAnyElements property. O XmlAttributes é então adicionado a um XmlAttributeOverrides que é usado para criar um XmlSerializer.The XmlAttributes is then added to a XmlAttributeOverrides which is used to create an XmlSerializer. O XmlSerializer é usado para serializar ou desserializar um objeto.The XmlSerializer is used to serialize or deserialize an object. Para ver o efeito de usar a XmlAnyElementAttributes Propriedade, crie um documento XML chamado UnknownElements. xml executando o SerializeObject método no Main método.To see the effect of using the XmlAnyElementAttributes property, create an XML document named UnknownElements.xml by running the SerializeObject method in the Main method. Edite o documento resultante para incluir outros elementos (desconhecidos).Edit the resulting document to include other (unknown) elements. Comente a SerializeObject chamada Main no método e remova a chamada para o DeserializeObject método, que imprime o nome e o valor de qualquer elemento XML desconhecido.Comment out the SerializeObject call in the Main method, and uncomment the call to the DeserializeObject method, which prints out the name and value of any unknown XML element.

#using <System.dll>
#using <System.xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
using namespace System::Xml;
public ref class Group
{
public:
   String^ GroupName;

   [XmlAnyElement]
   array<Object^>^Things;
};

void SerializeObject( String^ filename );
void DeserializeObject( String^ filename );
XmlSerializer^ CreateOverrideSerializer();
int main()
{
   // 1 Run this and create the XML document.
   // 2 Add new elements to the XML document.
   // 3 Comment out the next line, and uncomment
   // the DeserializeObject line to deserialize the
   // XML document and see unknown elements.
   SerializeObject( "UnknownElements.xml" );

   // DeserializeObject(S"UnknownElements.xml");
}

void SerializeObject( String^ filename )
{
   XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid );
   TextWriter^ writer = gcnew StreamWriter( filename );
   Group^ g = gcnew Group;
   g->GroupName = "MyGroup";
   ser->Serialize( writer, g );
   writer->Close();
}

void DeserializeObject( String^ filename )
{
   XmlSerializer^ ser = CreateOverrideSerializer();

   // A FileStream is needed to read the XML document.
   FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
   Group^ g = safe_cast<Group^>(ser->Deserialize( fs ));
   fs->Close();
   Console::WriteLine( g->GroupName );
   Console::WriteLine( g->Things->Length );
   for ( int i = 0; i < g->Things->Length; ++i )
   {
      XmlElement^ xelement = safe_cast<XmlElement^>(g->Things[ i ]);
      Console::WriteLine( "{0}: {1}", xelement->Name, xelement->InnerXml );
   }
}

XmlSerializer^ CreateOverrideSerializer()
{
   XmlAnyElementAttribute^ myAnyElement = gcnew XmlAnyElementAttribute;
   XmlAttributeOverrides^ xOverride = gcnew XmlAttributeOverrides;
   XmlAttributes^ xAtts = gcnew XmlAttributes;
   xAtts->XmlAnyElements->Add( myAnyElement );
   xOverride->Add( Group::typeid, "Things", xAtts );
   return gcnew XmlSerializer( Group::typeid,xOverride );
}
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;

public class Group{
   public string GroupName;
   [XmlAnyElement]
   public object[]Things;

}

public class Test{
   static void Main(){
      Test t = new Test();
      // 1 Run this and create the XML document.
      // 2 Add new elements to the XML document.
      // 3 Comment out the new line, and uncomment
      // the DeserializeObject line to deserialize the
      // XML document and see unknown elements.
      t.SerializeObject("UnknownElements.xml");
     
      // t.DeserializeObject("UnknownElements.xml");
   }

   private void SerializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof (Group));
      TextWriter writer = new StreamWriter(filename);
      Group g = new Group();
      g.GroupName = "MyGroup";
      ser.Serialize(writer, g);
      writer.Close();
   }

   
   private void DeserializeObject(string filename){

      XmlSerializer ser = CreateOverrideSerializer();
      // A FileStream is needed to read the XML document.
      FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group)
        ser.Deserialize(fs);
     fs.Close();
     Console.WriteLine(g.GroupName);
     Console.WriteLine(g.Things.Length);
     foreach(XmlElement xelement in g.Things){
     Console.WriteLine(xelement.Name + ": " + xelement.InnerXml);
     }
   }

   private XmlSerializer CreateOverrideSerializer(){
      XmlAnyElementAttribute myAnyElement = 
      new XmlAnyElementAttribute();
      XmlAttributeOverrides xOverride = 
      new XmlAttributeOverrides();
      XmlAttributes xAtts = new XmlAttributes();
      xAtts.XmlAnyElements.Add(myAnyElement);
      xOverride.Add(typeof(Group), "Things", xAtts);
      return new XmlSerializer(typeof(Group) , xOverride);
   }
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Xml

Public Class Group
   Public GroupName As String 
   <XmlAnyElement> _
   Public Things () As object
End Class

Public Class Test
   Shared Sub Main()
      Dim t As Test = New Test()
      ' 1 Run this and create the XML document.
      ' 2 Add New elements to the XML document.
      ' 3 Comment out the New line, and uncomment
      ' the DeserializeObject line to deserialize the
      ' XML document and see unknown elements.
     t.SerializeObject("UnknownElements.xml")
     
      't.DeserializeObject("UnknownElements.xml")
   End Sub

   Private Sub SerializeObject(filename As String)
      Dim ser As XmlSerializer = New XmlSerializer(GetType (Group))
      Dim writer As TextWriter = New StreamWriter(filename)
      
      Dim g As Group = New Group()
      g.GroupName = "MyGroup"
      ser.Serialize(writer, g)
      writer.Close()
   End Sub

   
   Private Sub DeserializeObject(filename As String)

      Dim ser As XmlSerializer = CreateOverrideSerializer()
      ' A FileStream is needed to read the XML document.
      Dim fs As FileStream = New FileStream(filename, FileMode.Open)
     Dim g As Group = CType( _
        ser.Deserialize(fs), Group)
     fs.Close()
     Console.WriteLine(g.GroupName)
     Console.WriteLine(g.Things.Length)
     Dim xelement As XmlELement
     for each xelement in g.Things
        Console.WriteLine(xelement.Name &": " & xelement.InnerXml)
     next
   End Sub
   

   Private Function CreateOverrideSerializer() As XmlSerializer 
      Dim myAnyElement As XmlAnyElementAttribute = _
      New XmlAnyElementAttribute()
      Dim xOverride As XmlAttributeOverrides = _
      New XmlAttributeOverrides()
      Dim xAtts As XmlAttributes = New XmlAttributes()
      xAtts.XmlAnyElements.Add(myAnyElement)
      xOverride.Add(GetType(Group), "Things", xAtts)
      return New XmlSerializer(GetType(Group) , xOverride)
   End Function
End Class

Comentários

Use o XmlAnyElementAttributes para substituir o comportamento de um conjunto de XmlAnyElementAttribute objetos.Use the XmlAnyElementAttributes to override the behavior of a set of XmlAnyElementAttribute objects. Várias instâncias da XmlAnyElementAttribute classe podem ser aplicadas a um membro de classe, desde que cada instância tenha um valor de Name Propriedade distinta; isso instrui o XmlSerializer a coletar elementos desconhecidos sob o elemento nomeado para a matriz apropriada .Multiple instances of the XmlAnyElementAttribute class can be applied to a class member, as long as each instance has a distinct Name property value; this instructs the XmlSerializer to collect unknown elements under the named element into the appropriate array. É por esse motivo que várias instâncias da XmlAnyElementAttribute classe podem ser adicionadas XmlAnyElementAttributesao.It is for this reason that multiple instances of the XmlAnyElementAttribute class can be added to the XmlAnyElementAttributes.

Para substituir um conjunto de XmlAnyElementAttribute objetos:To override a set of XmlAnyElementAttribute objects:

  1. Crie um XmlAnyElementAttributes.Create an XmlAnyElementAttributes.

  2. Crie o conjunto de XmlAnyElementAttribute objetos e adicione cada objeto à coleção usando o Add método.Create the set of XmlAnyElementAttribute objects, and add each object to the collection using the Add method.

  3. Crie um XmlAttributes.Create an XmlAttributes.

  4. Defina a XmlAnyElements propriedade para o XmlAnyElementAttributes.Set the XmlAnyElements property to the XmlAnyElementAttributes.

  5. Crie um XmlAttributeOverrides.Create an XmlAttributeOverrides.

  6. Adicione o XmlAttributes XmlAttributeOverrides ao usando o Add método.Add the XmlAttributes to the XmlAttributeOverrides using the Add method.

  7. Crie uma instância do XmlSerializer usando o. XmlAttributeOverridesCreate an instance of the XmlSerializer using the XmlAttributeOverrides.

  8. Serializar ou desserializar um objeto que contém o conjunto XmlAnyElementAttribute de objetos.Serialize or deserialize an object that contains the set of XmlAnyElementAttribute objects.

Construtores

XmlAnyElementAttributes()

Inicializa uma nova instância da classe XmlAnyElementAttributes.Initializes a new instance of the XmlAnyElementAttributes class.

Propriedades

Capacity

Obtém ou define o número de elementos que o CollectionBase pode conter.Gets or sets the number of elements that the CollectionBase can contain.

(Herdado de CollectionBase)
Count
InnerList

Obtém uma ArrayList que contém a lista de elementos na instância de CollectionBase.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(Herdado de CollectionBase)
Item[Int32]

Obtém ou define o XmlAnyElementAttribute no índice especificado.Gets or sets the XmlAnyElementAttribute at the specified index.

List

Obtém uma IList que contém a lista de elementos na instância de CollectionBase.Gets an IList containing the list of elements in the CollectionBase instance.

(Herdado de CollectionBase)

Métodos

Add(XmlAnyElementAttribute)

Adiciona um XmlAnyElementAttribute à coleção.Adds an XmlAnyElementAttribute to the collection.

Clear()
Contains(XmlAnyElementAttribute)

Obtém um valor que indica se o XmlAnyElementAttribute especificado existe na coleção.Gets a value that indicates whether the specified XmlAnyElementAttribute exists in the collection.

CopyTo(XmlAnyElementAttribute[], Int32)

Copia toda a coleção para uma matriz unidimensional compatível de objetos XmlElementAttribute, iniciando no índice especificado da matriz de destino.Copies the entire collection to a compatible one-dimensional array of XmlElementAttribute objects, starting at the specified index of the target array.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetEnumerator()
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
IndexOf(XmlAnyElementAttribute)

Obtém o índice do XmlAnyElementAttribute especificado.Gets the index of the specified XmlAnyElementAttribute.

Insert(Int32, XmlAnyElementAttribute)

Insere um XmlAnyElementAttribute na coleção no índice especificado.Inserts an XmlAnyElementAttribute into the collection at the specified index.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
OnClear()

Executa processos personalizados adicionais ao limpar o conteúdo da instância CollectionBase.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(Herdado de CollectionBase)
OnClearComplete()

Executa processos adicionais personalizados após limpar o conteúdo da instância CollectionBase.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(Herdado de CollectionBase)
OnInsert(Int32, Object)

Executa os processos personalizados adicionais antes de inserir um novo elemento na instância CollectionBase.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(Herdado de CollectionBase)
OnInsertComplete(Int32, Object)

Executa processos personalizados adicionais após inserir um novo elemento na instância de CollectionBase.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(Herdado de CollectionBase)
OnRemove(Int32, Object)

Executa processos personalizados adicionais ao remover um elemento da instância CollectionBase.Performs additional custom processes when removing an element from the CollectionBase instance.

(Herdado de CollectionBase)
OnRemoveComplete(Int32, Object)

Executa processos personalizados adicionais após remover um elemento da instância de CollectionBase.Performs additional custom processes after removing an element from the CollectionBase instance.

(Herdado de CollectionBase)
OnSet(Int32, Object, Object)

Executa processos personalizados adicionais antes de definir um valor na instância CollectionBase.Performs additional custom processes before setting a value in the CollectionBase instance.

(Herdado de CollectionBase)
OnSetComplete(Int32, Object, Object)

Executa processos personalizados adicionais após configurar um valor na instância de CollectionBase.Performs additional custom processes after setting a value in the CollectionBase instance.

(Herdado de CollectionBase)
OnValidate(Object)

Executa processos personalizados adicionais ao validar um valor.Performs additional custom processes when validating a value.

(Herdado de CollectionBase)
Remove(XmlAnyElementAttribute)

Remove o XmlAnyElementAttribute especificado da coleção.Removes the specified XmlAnyElementAttribute from the collection.

RemoveAt(Int32)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

ICollection.CopyTo(Array, Int32)
ICollection.IsSynchronized
ICollection.SyncRoot
IList.Add(Object)
IList.Contains(Object)
IList.IndexOf(Object)
IList.Insert(Int32, Object)
IList.IsFixedSize
IList.IsReadOnly
IList.Item[Int32]
IList.Remove(Object)

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.Converts an IEnumerable to an IQueryable.

Aplica-se a