Question

Je veux créer plusieurs propriétés à la volée à l'intérieur du constructeur de la classe et les ajouter à la classe actuelle. Le modèle de la propriété est le suivant

public [PropertyType] [PropertyName]
{
get {return Container.Resolve();}
}

J'ai lu un peu CodeDom et Reflection.Emit mais n'ont pas été en mesure de comprendre comment les utiliser dans ce cas particulier l'utilisation.

Un indice serait grandement apprécié. Merci à l'avance

EDIT: Je l'élaboration du but en raison du nombre de questions ... Je suis en train de mettre en œuvre la classe de base pour un localisateur de modèle de vue. La liaison en XAML est réalisée par référence à une propriété par son chemin, il doit donc être une propriété. Les types et les noms des propriétés à ajouter ne sont connus que lors de l'exécution, donc j'utilise la réflexion pour les obtenir. Bref, je besoin d'un exemple de prendre un morceau de code et la compilation de façon dynamique dans la même classe.

Était-ce utile?

La solution

Si vous êtes en C # 4, vous pouvez utiliser les nouvelles fonctions dynamiques pour cela. Utilisez ExpandoObject ou DynamicObject pour ajouter des propriétés dynamiquement à votre objet. Si vous faites référence puis les en XAML, ils seront résolus correctement.

Dans tous les cas, il est impossible de modifier la classe existante. Ce que vous pouvez est de créer une nouvelle classe, qui peut hériter de la classe existante et ajouter les propriétés à cela. Vous devriez être en mesure de se lier à eux de XAML.

Autres conseils

approche alternative:

vous pouvez mettre en œuvre ICustomTypeDescriptor et de fournir les propriétés supplémentaires

lien: édition avec les données de la grille de liaison

Bind vos trucs de XAML à somthing comme xml et xml changement dans l'exécution

Vous pouvez créer calss et hériter de la classe actuelle, la nouvelle classe peut avoir sur les propriétés de la mouche et la fonctionnalité classe de base

oui son look possible prendre à ce aide nécessaire à ajouter de nouvelles méthodes, les propriétés existantes dans classes dynamiquement

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top