Je crée des objets dynamiquement en utilisant Activator (C#) et une de ces classes ressemble:Créer un objet basé sur 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
}
Lorsque je crée instance de la classe de pilote en utilisant Activator I get suivantes objet:
obj.Item = null;
obj.ItemElementName = "Bit16"
La propriété ItemElementName est définie par défaut, car son énumération, mais comment définir Item si elle est basée sur cette énumération? Encore une fois, je crée dynamiquement de nombreux objets avec Activator, donc je ne peux pas le coder en dur - il est possible d'obtenir cette information en classe et de créer correctement la propriété Item?
Merci beaucoup!