Прочитать на английском

Поделиться через


XmlAttributeEventArgs Класс

Определение

Предоставляет данные о событии UnknownAttribute.

C#
public class XmlAttributeEventArgs : EventArgs
Наследование
XmlAttributeEventArgs

Примеры

В следующем примере выполняется десериализация класса с именем Group из файла с именем UnknownAttributes.xml. Всякий раз, когда в файле обнаруживается элемент, не имеющий соответствующего члена в классе , UnknownAttribute возникает событие . Чтобы попробовать пример, вставьте следующий XML-код в файл с именем UnknownAttributes.xml.

XML
<?xml version="1.0" encoding="utf-8"?>
<Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
  <GroupName>MyGroup</GroupName>
</Group>
C#
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;

public class Group{
   public string GroupName;
}

public class Test{
   static void Main(){
      Test t = new Test();
      // Deserialize the file containing unknown elements.
      t.DeserializeObject("UnknownAttributes.xml");
   }
   private void Serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e){
      Console.WriteLine("Unknown Attribute");
      Console.WriteLine("\t" + e.Attr.Name + " " + e.Attr.InnerXml);
      Console.WriteLine("\t LineNumber: " + e.LineNumber);
      Console.WriteLine("\t LinePosition: " + e.LinePosition);

      Group x  = (Group) e.ObjectBeingDeserialized;
      Console.WriteLine (x.GroupName);
      Console.WriteLine (sender.ToString());
   }
   private void DeserializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group));
      // Add a delegate to handle unknown element events.
      ser.UnknownAttribute+=new XmlAttributeEventHandler(Serializer_UnknownAttribute);
      // A FileStream is needed to read the XML document.
     FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group) ser.Deserialize(fs);
     fs.Close();
    }
}

Комментарии

Дополнительные сведения об обработке событий см. в разделе Обзор событий.

Событие UnknownAttribute возникает только при вызове Deserialize метода .

Свойства

Attr

Получает объект, представляющий неизвестный атрибут XML.

ExpectedAttributes

Получает разделенный запятыми список имен атрибутов XML ожидаемых в экземпляре документа XML.

LineNumber

Получает номер строки неизвестного атрибута XML.

LinePosition

Получает положение в строке неизвестного атрибута XML.

ObjectBeingDeserialized

Возвращает десериализуемый объект.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

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

Служит хэш-функцией по умолчанию.

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

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

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

Создает неполную копию текущего объекта Object.

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

Возвращает строку, представляющую текущий объект.

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

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

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

См. также раздел