XmlAnyElementAttributes Classe

Definição

Representa uma coleção de objetos XmlAnyElementAttribute .

public ref class XmlAnyElementAttributes : System::Collections::IList
public ref class XmlAnyElementAttributes : System::Collections::CollectionBase
public class XmlAnyElementAttributes : System.Collections.IList
public class XmlAnyElementAttributes : System.Collections.CollectionBase
type XmlAnyElementAttributes = class
    interface ICollection
    interface IEnumerable
    interface IList
type XmlAnyElementAttributes = class
    inherit CollectionBase
Public Class XmlAnyElementAttributes
Implements IList
Public Class XmlAnyElementAttributes
Inherits CollectionBase
Herança
XmlAnyElementAttributes
Herança
XmlAnyElementAttributes
Implementações

Exemplos

O exemplo a seguir cria um novo XmlAnyElementAttribute e o adiciona à coleção de objetos acessados por meio da XmlAnyElements propriedade . Em XmlAttributes seguida, o é adicionado a um XmlAttributeOverrides que é usado para criar um XmlSerializer. O XmlSerializer é usado para serializar ou desserializar um objeto. 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 . Edite o documento resultante para incluir outros elementos (desconhecidos). Comente a SerializeObject chamada no Main método e remova a marca de comentário da chamada para o DeserializeObject método , que imprime o nome e o valor de qualquer elemento XML desconhecido.

#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. Várias instâncias da XmlAnyElementAttribute classe podem ser aplicadas a um membro de classe, desde que cada instância tenha um valor de propriedade distinto Name ; isso instrui o XmlSerializer a coletar elementos desconhecidos sob o elemento nomeado na matriz apropriada. É por esse motivo que várias instâncias da XmlAnyElementAttribute classe podem ser adicionadas ao XmlAnyElementAttributes.

Para substituir um conjunto de XmlAnyElementAttribute objetos:

  1. Crie um XmlAnyElementAttributes.

  2. Crie o conjunto de XmlAnyElementAttribute objetos e adicione cada objeto à coleção usando o Add método .

  3. Crie um XmlAttributes.

  4. Defina a XmlAnyElements propriedade como .XmlAnyElementAttributes

  5. Crie um XmlAttributeOverrides.

  6. Adicione o XmlAttributes ao XmlAttributeOverrides usando o Add método .

  7. Crie uma instância do XmlSerializer usando o XmlAttributeOverrides.

  8. Serialize ou desserialize um objeto que contém o conjunto de XmlAnyElementAttribute objetos.

Construtores

XmlAnyElementAttributes()

Inicializa uma nova instância da classe XmlAnyElementAttributes.

Propriedades

Capacity

Obtém ou define o número de elementos que o CollectionBase pode conter.

(Herdado de CollectionBase)
Count

Obtém o número de elementos contidos no ICollection.

Count

Obtém o número de elementos contidos na instância de CollectionBase. Essa propriedade não pode ser substituída.

(Herdado de CollectionBase)
InnerList

Obtém uma ArrayList que contém a lista de elementos na instância de CollectionBase.

(Herdado de CollectionBase)
Item[Int32]

Obtém ou define o XmlAnyElementAttribute no índice especificado.

List

Obtém uma IList que contém a lista de elementos na instância de CollectionBase.

(Herdado de CollectionBase)

Métodos

Add(XmlAnyElementAttribute)

Adiciona um XmlAnyElementAttribute à coleção.

Clear()

Remove todos os itens do IList.

Clear()

Remove todos os objetos da instância CollectionBase. Esse método não pode ser substituído.

(Herdado de CollectionBase)
Contains(XmlAnyElementAttribute)

Obtém um valor que indica se o XmlAnyElementAttribute especificado existe na coleção.

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.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Retorna um enumerador que itera em uma coleção.

GetEnumerator()

Retorna um enumerador que itera pela instância CollectionBase.

(Herdado de CollectionBase)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(XmlAnyElementAttribute)

Obtém o índice do XmlAnyElementAttribute especificado.

Insert(Int32, XmlAnyElementAttribute)

Insere um XmlAnyElementAttribute na coleção no índice especificado.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnClear()

Executa processos personalizados adicionais ao limpar o conteúdo da instância CollectionBase.

(Herdado de CollectionBase)
OnClearComplete()

Executa processos adicionais personalizados após limpar o conteúdo da instância CollectionBase.

(Herdado de CollectionBase)
OnInsert(Int32, Object)

Executa os processos personalizados adicionais antes de inserir um novo elemento na instância CollectionBase.

(Herdado de CollectionBase)
OnInsertComplete(Int32, Object)

Executa processos personalizados adicionais após inserir um novo elemento na instância de CollectionBase.

(Herdado de CollectionBase)
OnRemove(Int32, Object)

Executa processos personalizados adicionais ao remover um elemento da instância CollectionBase.

(Herdado de CollectionBase)
OnRemoveComplete(Int32, Object)

Executa processos personalizados adicionais após remover um elemento da instância de CollectionBase.

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

Executa processos personalizados adicionais antes de definir um valor na instância CollectionBase.

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

Executa processos personalizados adicionais após configurar um valor na instância de CollectionBase.

(Herdado de CollectionBase)
OnValidate(Object)

Executa processos personalizados adicionais ao validar um valor.

(Herdado de CollectionBase)
Remove(XmlAnyElementAttribute)

Remove o XmlAnyElementAttribute especificado da coleção.

RemoveAt(Int32)

Remove o item IList no índice especificado.

RemoveAt(Int32)

Remove o elemento no índice especificado da instância CollectionBase. Este método não é substituível.

(Herdado de CollectionBase)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

ICollection.CopyTo(Array, Int32)

Copia os elementos de ICollection para uma matriz, começando em um índice determinado.

ICollection.CopyTo(Array, Int32)

Copia todo o CollectionBase em um Array unidimensional compatível, começando no índice especificado da matriz de destino.

(Herdado de CollectionBase)
ICollection.IsSynchronized

Obtém um valor que indica se o acesso à ICollection é sincronizado (thread-safe).

ICollection.IsSynchronized

Obtém um valor que indica se o acesso à CollectionBase é sincronizado (thread-safe).

(Herdado de CollectionBase)
ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao ICollection.

ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao CollectionBase.

(Herdado de CollectionBase)
IList.Add(Object)

Adiciona um item ao IList.

IList.Add(Object)

Adiciona um objeto ao final do CollectionBase.

(Herdado de CollectionBase)
IList.Contains(Object)

Determinará se o IList contiver um valor específico.

IList.Contains(Object)

Determina se o CollectionBase contém um elemento específico.

(Herdado de CollectionBase)
IList.IndexOf(Object)

Determina o índice de um item específico em IList.

IList.IndexOf(Object)

Pesquisa o Object especificado e retorna o índice de base zero da primeira ocorrência dentro de todo o CollectionBase.

(Herdado de CollectionBase)
IList.Insert(Int32, Object)

Insere um item na IList no índice especificado.

IList.Insert(Int32, Object)

Insere um elemento no CollectionBase, no índice especificado.

(Herdado de CollectionBase)
IList.IsFixedSize

Obtém um valor que indica se o IList tem um tamanho fixo.

IList.IsFixedSize

Obtém um valor que indica se o CollectionBase tem um tamanho fixo.

(Herdado de CollectionBase)
IList.IsReadOnly

Obtém um valor que indica se o IList é somente leitura.

IList.IsReadOnly

Obtém um valor que indica se o CollectionBase é somente leitura.

(Herdado de CollectionBase)
IList.Item[Int32]

Obtém ou define o elemento no índice especificado.

IList.Item[Int32]

Obtém ou define o elemento no índice especificado.

(Herdado de CollectionBase)
IList.Remove(Object)

Remove a primeira ocorrência de um objeto específico do IList.

IList.Remove(Object)

Remove a primeira ocorrência de um objeto específico do CollectionBase.

(Herdado de CollectionBase)

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a