XmlAnyElementAttributes Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет коллекцию 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
- Наследование
-
XmlAnyElementAttributes
- Наследование
- Реализации
Примеры
В следующем примере создается новый XmlAnyElementAttribute объект и добавляется в коллекцию объектов, к ним обращается XmlAnyElements свойство. Затем добавляется XmlAttributes в объект XmlAttributeOverrides, который используется для создания XmlSerializer. Используется XmlSerializer для сериализации или десериализации объекта. Чтобы увидеть эффект использования XmlAnyElementAttributes свойства, создайте XML-документ с именем UnknownElements.xml, выполнив SerializeObject метод в методе Main . Измените полученный документ, чтобы включить другие (неизвестные) элементы.
SerializeObject Закомментируйте вызов в Main методе и раскомментируйте вызов DeserializeObject метода, который выводит имя и значение любого неизвестного XML-элемента.
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 объектов. Несколько экземпляров XmlAnyElementAttribute класса могут применяться к члену класса, если каждый экземпляр имеет отдельное Name значение свойства. Это указывает XmlSerializer собирать неизвестные элементы под именованным элементом в соответствующий массив. Именно поэтому в класс можно добавить XmlAnyElementAttributesнесколько экземпляровXmlAnyElementAttribute.
Чтобы переопределить набор объектов, выполните приведенные XmlAnyElementAttribute выше действия.
XmlAnyElementAttributesСоздание .
Создайте набор XmlAnyElementAttribute объектов и добавьте каждый объект в коллекцию с помощью Add метода.
XmlAttributesСоздание .
XmlAnyElements Задайте для свойства XmlAnyElementAttributesзначение .
XmlAttributeOverridesСоздание .
Добавьте его XmlAttributes в XmlAttributeOverridesAdd метод.
Создайте экземпляр XmlSerializer с помощью XmlAttributeOverrides.
Сериализация или десериализация объекта, содержащего набор XmlAnyElementAttribute объектов.
Конструкторы
| Имя | Описание |
|---|---|
| XmlAnyElementAttributes() |
Инициализирует новый экземпляр класса XmlAnyElementAttributes. |
Свойства
| Имя | Описание |
|---|---|
| Capacity |
Возвращает или задает количество элементов, которые CollectionBase могут содержаться. (Унаследовано от CollectionBase) |
| Count |
Возвращает количество элементов, содержащихся в объекте ICollection. |
| Count |
Возвращает количество элементов, содержащихся в экземпляре CollectionBase . Это свойство нельзя переопределить. (Унаследовано от CollectionBase) |
| InnerList |
ArrayList Возвращает список элементов в экземпляреCollectionBase. (Унаследовано от CollectionBase) |
| Item[Int32] |
Возвращает или задает указанный XmlAnyElementAttribute индекс. |
| List |
IList Возвращает список элементов в экземпляреCollectionBase. (Унаследовано от CollectionBase) |
Методы
| Имя | Описание |
|---|---|
| Add(XmlAnyElementAttribute) |
Добавляет в XmlAnyElementAttribute коллекцию. |
| Clear() |
Удаляет все элементы из элемента IList. |
| Clear() |
Удаляет все объекты из экземпляра CollectionBase . Этот метод нельзя переопределить. (Унаследовано от CollectionBase) |
| Contains(XmlAnyElementAttribute) |
Возвращает значение, указывающее, существует ли указанный XmlAnyElementAttribute в коллекции. |
| CopyTo(XmlAnyElementAttribute[], Int32) |
Копирует всю коллекцию в совместимый одномерный массив XmlElementAttribute объектов, начиная с указанного индекса целевого массива. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetEnumerator() |
Возвращает перечислитель, который выполняет итерацию по коллекции. |
| GetEnumerator() |
Возвращает перечислитель, который выполняет итерацию по экземпляру CollectionBase . (Унаследовано от CollectionBase) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IndexOf(XmlAnyElementAttribute) |
Возвращает индекс указанного XmlAnyElementAttribute. |
| Insert(Int32, XmlAnyElementAttribute) |
Вставляется XmlAnyElementAttribute в коллекцию по указанному индексу. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OnClear() |
Выполняет дополнительные пользовательские процессы при очистке содержимого экземпляра CollectionBase . (Унаследовано от CollectionBase) |
| OnClearComplete() |
Выполняет дополнительные пользовательские процессы после очистки содержимого экземпляра CollectionBase . (Унаследовано от CollectionBase) |
| OnInsert(Int32, Object) |
Выполняет дополнительные пользовательские процессы перед вставкой нового элемента в CollectionBase экземпляр. (Унаследовано от CollectionBase) |
| OnInsertComplete(Int32, Object) |
Выполняет дополнительные пользовательские процессы после вставки нового элемента в CollectionBase экземпляр. (Унаследовано от CollectionBase) |
| OnRemove(Int32, Object) |
Выполняет дополнительные пользовательские процессы при удалении элемента из экземпляра CollectionBase . (Унаследовано от CollectionBase) |
| OnRemoveComplete(Int32, Object) |
Выполняет дополнительные пользовательские процессы после удаления элемента из экземпляра CollectionBase . (Унаследовано от CollectionBase) |
| OnSet(Int32, Object, Object) |
Выполняет дополнительные пользовательские процессы перед заданием значения в экземпляре CollectionBase . (Унаследовано от CollectionBase) |
| OnSetComplete(Int32, Object, Object) |
Выполняет дополнительные пользовательские процессы после задания значения в экземпляре CollectionBase . (Унаследовано от CollectionBase) |
| OnValidate(Object) |
Выполняет дополнительные пользовательские процессы при проверке значения. (Унаследовано от CollectionBase) |
| Remove(XmlAnyElementAttribute) |
Удаляет указанный XmlAnyElementAttribute из коллекции. |
| RemoveAt(Int32) |
Удаляет IList элемент по указанному индексу. |
| RemoveAt(Int32) |
Удаляет элемент по указанному индексу экземпляра CollectionBase . Этот метод не переопределяется. (Унаследовано от CollectionBase) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Копирует элементы ICollection массива, начиная с определенного индекса. |
| ICollection.CopyTo(Array, Int32) |
Копирует весь CollectionBase в совместимую одномерную Array, начиная с указанного индекса целевого массива. (Унаследовано от CollectionBase) |
| ICollection.IsSynchronized |
Возвращает значение, указывающее, синхронизирован ли доступ к ICollection (потокобезопасный). |
| ICollection.IsSynchronized |
Возвращает значение, указывающее, синхронизирован ли доступ к CollectionBase (потокобезопасный). (Унаследовано от CollectionBase) |
| ICollection.SyncRoot |
Получает объект, который можно использовать для синхронизации доступа к объекту ICollection. |
| ICollection.SyncRoot |
Получает объект, который можно использовать для синхронизации доступа к объекту CollectionBase. (Унаследовано от CollectionBase) |
| IList.Add(Object) |
Добавляет элемент в IList. |
| IList.Add(Object) |
Добавляет объект в конец CollectionBase. (Унаследовано от CollectionBase) |
| IList.Contains(Object) |
Определяет, содержит ли IList определенное значение. |
| IList.Contains(Object) |
Определяет, содержит ли CollectionBase определенный элемент. (Унаследовано от CollectionBase) |
| IList.IndexOf(Object) |
Определяет индекс определенного элемента в IList. |
| IList.IndexOf(Object) |
Выполняет поиск указанного Object и возвращает отсчитываемый от нуля индекс первого вхождения в течение всего CollectionBase. (Унаследовано от CollectionBase) |
| IList.Insert(Int32, Object) |
Вставляет элемент IList в указанный индекс. |
| IList.Insert(Int32, Object) |
Вставляет элемент в CollectionBase по указанному индексу. (Унаследовано от CollectionBase) |
| IList.IsFixedSize |
Возвращает значение, указывающее, имеет ли IList фиксированный размер. |
| IList.IsFixedSize |
Возвращает значение, указывающее, имеет ли CollectionBase фиксированный размер. (Унаследовано от CollectionBase) |
| IList.IsReadOnly |
Возвращает значение, указывающее, доступен ли IList только для чтения. |
| IList.IsReadOnly |
Возвращает значение, указывающее, доступен ли CollectionBase только для чтения. (Унаследовано от CollectionBase) |
| IList.Item[Int32] |
Возвращает или задает элемент по указанному индексу. |
| IList.Item[Int32] |
Возвращает или задает элемент по указанному индексу. (Унаследовано от CollectionBase) |
| IList.Remove(Object) |
Удаляет первое вхождение определенного объекта из IList. |
| IList.Remove(Object) |
Удаляет первое вхождение определенного объекта из CollectionBase. (Унаследовано от CollectionBase) |
Методы расширения
| Имя | Описание |
|---|---|
| AsParallel(IEnumerable) |
Включает параллелизацию запроса. |
| AsQueryable(IEnumerable) |
Преобразует IEnumerable в IQueryable. |
| Cast<TResult>(IEnumerable) |
Приведение элементов IEnumerable к указанному типу. |
| OfType<TResult>(IEnumerable) |
Фильтрует элементы IEnumerable на основе указанного типа. |