я создаю объекты динамически с помощью Activator (C#) и один из этих классов выглядит следующим образом:Создание объекта на основе XmlChoiceIdentifier
class Driver
{
Driver() { }
[XmlChoiceIdentifier("ItemElementName")]
[XmlElement("Bit16", typeof(DriverModule))]
[XmlElement("Bit32", typeof(DriverModule))]
[XmlElement("Bit64", typeof(DriverModule))]
[XmlElement("Unified", typeof(DriverUnified))]
public object Item { get; set; }
[XmlIgnore]
public ItemChoiceType ItemElementName { get; set; }
// ... other serialization methods
}
Когда я создаю экземпляр класса Driver с помощью Активатор я получаю следующий объект:
obj.Item = null;
obj.ItemElementName = "Bit16"
ItemElementName устанавливается по умолчанию, потому что его перечисление, но как установить элемент, если он основан на этом перечислении? Еще раз, я создаю много объектов динамически с помощью Activator, поэтому я не могу его жестко определить - возможно ли получить эту информацию в классе и правильно создать свойство Item?
Большое спасибо!