Создать объект на основе XmlChoiceIdentifier
Я создаю объекты динамически, используя Activator (C #), и один из этих классов выглядит следующим образом:
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 с помощью Activator, я получаю следующий объект:
obj.Item = null;
obj.ItemElementName = "Bit16"
ItemElementName устанавливается по умолчанию, потому что его перечисление, но как установить Item, если оно основано на этом перечислении? Еще раз, я динамически создаю много объектов с помощью Activator, поэтому я не могу жестко закодировать его - возможно ли получить эту информацию в классе и правильно создать свойство Item?
Большое спасибо!