Partilhar via


XmlAnyElementAttributes Classe

Definição

Representa uma coleção de XmlAnyElementAttribute objetos.

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 adiciona-o à coleção de objetos acessados por meio da XmlAnyElements propriedade. Em XmlAttributes seguida, ele é adicionado a um XmlAttributeOverrides, que é usado para criar um XmlSerializer. O XmlSerializer é usado para serializar ou desserializar um objeto. Para ver o efeito do uso XmlAnyElementAttributes da 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 descompacte a chamada para o DeserializeObject método, que imprime o nome e o valor de qualquer elemento XML desconhecido.

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 a XmlSerializer 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. Criar um XmlAnyElementAttributes.

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

  3. Criar um XmlAttributes.

  4. Defina a XmlAnyElements propriedade como XmlAnyElementAttributes.

  5. Criar um XmlAttributeOverrides.

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

  7. Criar uma instância do XmlSerializer uso do XmlAttributeOverrides.

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

Construtores

Nome Description
XmlAnyElementAttributes()

Inicializa uma nova instância da classe XmlAnyElementAttributes.

Propriedades

Nome Description
Capacity

Obtém ou define o número de elementos que podem CollectionBase 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 CollectionBase instância. Essa propriedade não pode ser substituída.

(Herdado de CollectionBase)
InnerList

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

(Herdado de CollectionBase)
Item[Int32]

Obtém ou define o XmlAnyElementAttribute índice especificado.

List

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

(Herdado de CollectionBase)

Métodos

Nome Description
Add(XmlAnyElementAttribute)

Adiciona um XmlAnyElementAttribute à coleção.

Clear()

Remove todos os itens do IList.

Clear()

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

(Herdado de CollectionBase)
Contains(XmlAnyElementAttribute)

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

CopyTo(XmlAnyElementAttribute[], Int32)

Copia toda a coleção para uma matriz unidimensional compatível de XmlElementAttribute objetos, começando 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 por meio de uma coleção.

GetEnumerator()

Retorna um enumerador que itera por meio da CollectionBase instância.

(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 especificado XmlAnyElementAttribute.

Insert(Int32, XmlAnyElementAttribute)

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

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OnClear()

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

(Herdado de CollectionBase)
OnClearComplete()

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

(Herdado de CollectionBase)
OnInsert(Int32, Object)

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

(Herdado de CollectionBase)
OnInsertComplete(Int32, Object)

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

(Herdado de CollectionBase)
OnRemove(Int32, Object)

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

(Herdado de CollectionBase)
OnRemoveComplete(Int32, Object)

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

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

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

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

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

(Herdado de CollectionBase)
OnValidate(Object)

Executa processos personalizados adicionais ao validar um valor.

(Herdado de CollectionBase)
Remove(XmlAnyElementAttribute)

Remove o especificado XmlAnyElementAttribute da coleção.

RemoveAt(Int32)

Remove o IList item no índice especificado.

RemoveAt(Int32)

Remove o elemento no índice especificado da CollectionBase instância. Esse 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

Nome Description
ICollection.CopyTo(Array, Int32)

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

ICollection.CopyTo(Array, Int32)

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

(Herdado de CollectionBase)
ICollection.IsSynchronized

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

ICollection.IsSynchronized

Obtém um valor que indica se o CollectionBase acesso ao é 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)

Determina se o IList valor contém um valor específico.

IList.Contains(Object)

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

(Herdado de CollectionBase)
IList.IndexOf(Object)

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

IList.IndexOf(Object)

Pesquisa o índice especificado Object e retorna o índice baseado em zero da primeira ocorrência em todo CollectionBaseo .

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

Insere um item no IList índice especificado.

IList.Insert(Int32, Object)

Insere um elemento CollectionBase no índice especificado.

(Herdado de CollectionBase)
IList.IsFixedSize

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

IList.IsFixedSize

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

(Herdado de CollectionBase)
IList.IsReadOnly

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

IList.IsReadOnly

Obtém um valor que indica se o CollectionBase valor é 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

Nome Description
AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

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.

Aplica-se a