XmlAnyElementAttributes Класс

Определение

Представляет коллекцию объектов XmlAnyElementAttribute.Represents a collection of XmlAnyElementAttribute objects.

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
Наследование
XmlAnyElementAttributes
Наследование
XmlAnyElementAttributes
Реализации

Примеры

В следующем примере создается новый объект XmlAnyElementAttribute , который затем добавляется в коллекцию объектов, доступ к которым осуществляется через XmlAnyElements свойство.The following example creates a new XmlAnyElementAttribute and adds it to the collection of objects accessed through the XmlAnyElements property. XmlAttributesЗатем добавляется в, XmlAttributeOverrides который используется для создания XmlSerializer .The XmlAttributes is then added to a XmlAttributeOverrides which is used to create an XmlSerializer. XmlSerializerИспользуется для сериализации или десериализации объекта.The XmlSerializer is used to serialize or deserialize an object. Чтобы увидеть результат использования XmlAnyElementAttributes свойства, создайте XML-документ с именем UnknownElements.xml, выполнив SerializeObject метод в Main методе.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. Измените полученный документ, чтобы он включал другие (неизвестные) элементы.Edit the resulting document to include other (unknown) elements. Закомментируйте SerializeObject вызов в Main методе и раскомментируйте вызов DeserializeObject метода, который выводит имя и значение любого неизвестного XML-элемента.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

Комментарии

Используйте XmlAnyElementAttributes метод, чтобы переопределить поведение набора XmlAnyElementAttribute объектов.Use the XmlAnyElementAttributes to override the behavior of a set of XmlAnyElementAttribute objects. XmlAnyElementAttributeК члену класса может быть применено несколько экземпляров класса, если каждый экземпляр имеет Name значение свойства DISTINCT; это указывает компоненту XmlSerializer на необходимость получения неизвестных элементов в именованном элементе в соответствующий массив.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. По этой причине несколько экземпляров XmlAnyElementAttribute класса могут быть добавлены в XmlAnyElementAttributes .It is for this reason that multiple instances of the XmlAnyElementAttribute class can be added to the XmlAnyElementAttributes.

Переопределение набора XmlAnyElementAttribute объектов:To override a set of XmlAnyElementAttribute objects:

  1. Создайте XmlAnyElementAttributes .Create an XmlAnyElementAttributes.

  2. Создайте набор XmlAnyElementAttribute объектов и добавьте каждый объект в коллекцию с помощью Add метода.Create the set of XmlAnyElementAttribute objects, and add each object to the collection using the Add method.

  3. Создайте XmlAttributes .Create an XmlAttributes.

  4. Присвойте XmlAnyElements свойству значение XmlAnyElementAttributes .Set the XmlAnyElements property to the XmlAnyElementAttributes.

  5. Создайте XmlAttributeOverrides .Create an XmlAttributeOverrides.

  6. Добавьте в XmlAttributes в с XmlAttributeOverrides помощью Add метода.Add the XmlAttributes to the XmlAttributeOverrides using the Add method.

  7. Создайте экземпляр класса XmlSerializer с помощью XmlAttributeOverrides .Create an instance of the XmlSerializer using the XmlAttributeOverrides.

  8. Сериализация или десериализация объекта, содержащего набор XmlAnyElementAttribute объектов.Serialize or deserialize an object that contains the set of XmlAnyElementAttribute objects.

Конструкторы

XmlAnyElementAttributes()

Инициализирует новый экземпляр класса XmlAnyElementAttributes.Initializes a new instance of the XmlAnyElementAttributes class.

Свойства

Capacity

Возвращает или задает число элементов, которое может содержать список CollectionBase.Gets or sets the number of elements that the CollectionBase can contain.

(Унаследовано от CollectionBase)
Count

Получает число элементов, содержащихся в интерфейсе ICollection.Gets the number of elements contained in the ICollection.

Count

Возвращает количество элементов, содержащихся в экземпляре CollectionBase.Gets the number of elements contained in the CollectionBase instance. Это свойство нельзя переопределить.This property cannot be overridden.

(Унаследовано от CollectionBase)
InnerList

Возвращает объект ArrayList, в котором хранится список элементов экземпляра класса CollectionBase.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(Унаследовано от CollectionBase)
Item[Int32]

Возвращает или задает объект XmlAnyElementAttribute с заданным индексом.Gets or sets the XmlAnyElementAttribute at the specified index.

List

Возвращает объект IList, в котором хранится список элементов экземпляра класса CollectionBase.Gets an IList containing the list of elements in the CollectionBase instance.

(Унаследовано от CollectionBase)

Методы

Add(XmlAnyElementAttribute)

Добавляет в коллекцию объект XmlAnyElementAttribute.Adds an XmlAnyElementAttribute to the collection.

Clear()

Удаляет все элементы из коллекции IList.Removes all items from the IList.

Clear()

Удаляет все объекты из экземпляра класса CollectionBase.Removes all objects from the CollectionBase instance. Этот метод не может быть переопределен.This method cannot be overridden.

(Унаследовано от CollectionBase)
Contains(XmlAnyElementAttribute)

Получает значение, которое указывает, содержится ли заданный объект XmlAnyElementAttribute в коллекции.Gets a value that indicates whether the specified XmlAnyElementAttribute exists in the collection.

CopyTo(XmlAnyElementAttribute[], Int32)

Копирует коллекцию целиком в совместимый одномерный массив объектов XmlElementAttribute, начиная с заданного индекса целевого массива.Copies the entire collection to a compatible one-dimensional array of XmlElementAttribute objects, starting at the specified index of the target array.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель, который осуществляет итерацию по коллекции.Returns an enumerator that iterates through a collection.

GetEnumerator()

Возвращает перечислитель, перебирающий элементы экземпляра класса CollectionBase.Returns an enumerator that iterates through the CollectionBase instance.

(Унаследовано от CollectionBase)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
IndexOf(XmlAnyElementAttribute)

Получает индекс заданного ограничения XmlAnyElementAttribute.Gets the index of the specified XmlAnyElementAttribute.

Insert(Int32, XmlAnyElementAttribute)

Вставляет в коллекцию объект XmlAnyElementAttribute по указанному индексу.Inserts an XmlAnyElementAttribute into the collection at the specified index.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnClear()

Выполняет дополнительные пользовательские действия при очистке содержимого экземпляра CollectionBase.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(Унаследовано от CollectionBase)
OnClearComplete()

Осуществляет дополнительные пользовательские действия после удаления содержимого экземпляра класса CollectionBase.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(Унаследовано от CollectionBase)
OnInsert(Int32, Object)

Выполняет дополнительные пользовательские действия перед вставкой нового элемента в экземпляр класса CollectionBase.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(Унаследовано от CollectionBase)
OnInsertComplete(Int32, Object)

Выполняет дополнительные пользовательские действия после вставки нового элемента в экземпляр класса CollectionBase.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(Унаследовано от CollectionBase)
OnRemove(Int32, Object)

Осуществляет дополнительные пользовательские действия при удалении элемента из экземпляра класса CollectionBase.Performs additional custom processes when removing an element from the CollectionBase instance.

(Унаследовано от CollectionBase)
OnRemoveComplete(Int32, Object)

Осуществляет дополнительные пользовательские действия после удаления элемента из экземпляра класса CollectionBase.Performs additional custom processes after removing an element from the CollectionBase instance.

(Унаследовано от CollectionBase)
OnSet(Int32, Object, Object)

Выполняет дополнительные пользовательские действия перед заданием значения в экземпляре класса CollectionBase.Performs additional custom processes before setting a value in the CollectionBase instance.

(Унаследовано от CollectionBase)
OnSetComplete(Int32, Object, Object)

Выполняет дополнительные пользовательские действия после задания значения в экземпляре класса CollectionBase.Performs additional custom processes after setting a value in the CollectionBase instance.

(Унаследовано от CollectionBase)
OnValidate(Object)

Выполняет дополнительные пользовательские операции при проверке значения.Performs additional custom processes when validating a value.

(Унаследовано от CollectionBase)
Remove(XmlAnyElementAttribute)

Удаляет указанный объект XmlAnyElementAttribute из коллекции.Removes the specified XmlAnyElementAttribute from the collection.

RemoveAt(Int32)

Удаляет элемент IList по указанному индексу.Removes the IList item at the specified index.

RemoveAt(Int32)

Удаляет элемент по указанному индексу в экземпляре класса CollectionBase.Removes the element at the specified index of the CollectionBase instance. Этот метод нельзя переопределить.This method is not overridable.

(Унаследовано от CollectionBase)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32)

Копирует элементы коллекции ICollection в массив, начиная с определенного индекса.Copies the elements of the ICollection to an array, starting at a particular index.

ICollection.CopyTo(Array, Int32)

Копирует целый массив CollectionBase в совместимый одномерный массив Array, начиная с заданного индекса целевого массива.Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array.

(Унаследовано от CollectionBase)
ICollection.IsSynchronized

Возвращает значение, показывающее, является ли доступ к коллекции ICollection синхронизированным (потокобезопасным).Gets a value indicating whether access to the ICollection is synchronized (thread safe).

ICollection.IsSynchronized

Возвращает значение, показывающее, является ли доступ к коллекции CollectionBase синхронизированным (потокобезопасным).Gets a value indicating whether access to the CollectionBase is synchronized (thread safe).

(Унаследовано от CollectionBase)
ICollection.SyncRoot

Получает объект, с помощью которого можно синхронизировать доступ к коллекции ICollection.Gets an object that can be used to synchronize access to the ICollection.

ICollection.SyncRoot

Получает объект, с помощью которого можно синхронизировать доступ к коллекции CollectionBase.Gets an object that can be used to synchronize access to the CollectionBase.

(Унаследовано от CollectionBase)
IList.Add(Object)

Добавляет элемент в коллекцию IList.Adds an item to the IList.

IList.Add(Object)

Добавляет объект в конец коллекции CollectionBase.Adds an object to the end of the CollectionBase.

(Унаследовано от CollectionBase)
IList.Contains(Object)

Определяет, содержит ли коллекция IList указанное значение.Determines whether the IList contains a specific value.

IList.Contains(Object)

Определяет, содержит ли интерфейс CollectionBase определенный элемент.Determines whether the CollectionBase contains a specific element.

(Унаследовано от CollectionBase)
IList.IndexOf(Object)

Определяет индекс заданного элемента коллекции IList.Determines the index of a specific item in the IList.

IList.IndexOf(Object)

Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс первого вхождения в коллекцию CollectionBase.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase.

(Унаследовано от CollectionBase)
IList.Insert(Int32, Object)

Вставляет элемент в список IList по указанному индексу.Inserts an item to the IList at the specified index.

IList.Insert(Int32, Object)

Вставляет элемент в коллекцию CollectionBase по указанному индексу.Inserts an element into the CollectionBase at the specified index.

(Унаследовано от CollectionBase)
IList.IsFixedSize

Возвращает значение, указывающее, имеет ли IList фиксированный размер.Gets a value indicating whether the IList has a fixed size.

IList.IsFixedSize

Получает значение, указывающее, имеет ли список CollectionBase фиксированный размер.Gets a value indicating whether the CollectionBase has a fixed size.

(Унаследовано от CollectionBase)
IList.IsReadOnly

Получает значение, указывающее, является ли объект IList доступным только для чтения.Gets a value indicating whether the IList is read-only.

IList.IsReadOnly

Получает значение, указывающее, является ли объект CollectionBase доступным только для чтения.Gets a value indicating whether the CollectionBase is read-only.

(Унаследовано от CollectionBase)
IList.Item[Int32]

Возвращает или задает элемент по указанному индексу.Gets or sets the element at the specified index.

IList.Item[Int32]

Возвращает или задает элемент по указанному индексу.Gets or sets the element at the specified index.

(Унаследовано от CollectionBase)
IList.Remove(Object)

Удаляет первое вхождение указанного объекта из коллекции IList.Removes the first occurrence of a specific object from the IList.

IList.Remove(Object)

Удаляет первое вхождение указанного объекта из коллекции CollectionBase.Removes the first occurrence of a specific object from the CollectionBase.

(Унаследовано от CollectionBase)

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

Применяется к