2010-09-14 2 views
0

J'ai utilisé un objet dynamique, mais voici une situation dans laquelle les noms de colonnes proviennent d'une matrice de chaînes prédéfinie.Comment puis-je créer des objets lors de l'exécution? -defined set of column values ​​?. La raison pour laquelle je voulais faire ainsi est de créer une classe personnalisée et d'ajouter des attributs de validation personnalisés pour pouvoir utiliser la réflexion au moment de l'exécution pour remplir les objets dynamiques mappés à ma classe personnalisée et valider les valeurs fonction.Dynamic Object C# 4.0, Création de colonnes à l'exécution à partir de valeurs prédéfinies

dynamic x = new MyCustomClass(); 
x.Name = "Jones"; // The Field or Column name "Name" comes from a array of strings. 

Validator.Validate(x); //Here i use reflection to iterate through the custom attributes on MyCustomClass and validate them based on conditions. 

Est-il possible de faire quelque chose comme ça x."Name" = "Jones"; :-)

+0

objets expando ressemblent, ils feront ce que vous êtes après - vérifier 3/4 dans ce lien: http://msdn.microsoft.com/en-us/magazine/ff796227.aspx – Will

Répondre

0

Je suggérerais peut-être d'ajouter une propriété d'indexeur à votre MyCustomClass?

public string this[string binder] { 
    get { 
     string result; 
     return (this.TryGetMember(binder, out result)) ? result : string.Empty 
    } 
    set { 
     this.TrySetMember(binder, value); 
    } 
} 

x["Name"] = "Jones"; 
Questions connexes