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!

questionAnswers(1)

yourAnswerToTheQuestion