Domanda

Voglio creare diverse proprietà al volo all'interno del costruttore della classe e aggiungerli alla classe corrente. Il modello della proprietà è il seguente

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

Ho letto un po 'di CodeDom e Reflection.Emit, ma non sono stati in grado di capire come usarli in questo particolare caso d'uso.

Qualsiasi indizio sarebbe molto apprezzato. Grazie in anticipo

EDIT: Sto elaborando lo scopo a causa del numero di domande ... Sto cercando di implementare la classe base per una vista del modello localizzatore. Il legame in XAML è raggiunto attraverso riferisce a una proprietà dal suo percorso, quindi deve essere una proprietà. I tipi e nomi delle proprietà da aggiungere sono noti solo in fase di esecuzione, quindi sto usando la riflessione per farli. In breve, ho bisogno di un esempio di prendere un pezzo di codice e compilarlo in modo dinamico nella classe data.

È stato utile?

Soluzione

Se hai meno di C # 4, è possibile utilizzare le nuove funzionalità dinamiche per questo. Usa ExpandoObject o DynamicObject per aggiungere proprietà al vostro oggetto in modo dinamico. Se poi si fa riferimento a loro in XAML, avranno risolto correttamente.

In ogni caso, non è possibile modificare classe esistente. Che cosa si può è quello di creare una nuova classe, che può ereditare dalla classe esistente, e aggiungere le proprietà a questo. Si dovrebbe essere in grado di legarsi a loro da XAML.

Altri suggerimenti

approccio alternativo:

si potrebbe implementare ICustomTypeDescriptor e fornire le proprietà aggiuntive

link: con i dati di griglia vincolante

vincolare il proprio roba XAML per somthing come XML e il cambiamento xml nel runtime

È possibile creare nuovi calss ed ereditare dalla classe corrente, la nuova classe può avere la funzionalità sulla proprietà mosca e classe di base

Sì, è possibile prendere un'occhiata a questo richiesto l'aggiunta di nuovi metodi, proprietà in esistenti classi dinamicamente

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top