Criar objeto com base no XmlChoiceIdentifier
Eu estou criando objetos dinamicamente usando o Activator (C #) e uma dessas classes se parece com:
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
}
Quando eu crio uma instância da classe Driver usando o Activator, recebo o seguinte objeto:
obj.Item = null;
obj.ItemElementName = "Bit16"
ItemElementName é definido por padrão, porque seu enum, mas como definir o item se for baseado neste enum? Mais uma vez, estou criando muitos objetos dinamicamente com o Activator, por isso não posso codificá-lo - é possível obter essas informações na classe e criar a propriedade Item corretamente?
Muito obrigado!