2013-04-18 8 views
5

La generazione di classi di entità associate in anticipo per le entità CRM è abbastanza semplice. Generare l'enumerazione per gli OptionSet è abbastanza semplice. La generazione delle proprietà Enum OptionSet per le entità che sono state digitate sull'Enum corretto non è così semplice e non è attualmente supportata da CrmSrvUtil.exe. Se si vuole essere in grado di utilizzare le enumerazioni per popolare i valori di opzione impostati, si deve scrivere continuamente il codice che assomiglia a questo:Come generare automaticamente le proprietà Enum vincolate anticipatamente per gli attributi Entità che sono normalmente insiemi di opzioni?

contact.Address1_AddressTypeCode = new OptionSetValue((int)contact_address1_addresstypecode.Home); 

Come faccio a generare proprietà specifiche Enum per OptionSetValues, così posso scrivere codice in questo modo:

contact.Address1_AddressTypeCode = contact_address1_addresstypecode.Home; 

e così Address1_AddressTypeCode's tipo è contact_address1_addresstypecode?

risposta

4

La mia risposta precedente è stata risucchiata ... Utilizzare invece: Early Bound Generator for CRM Disclamer: l'ho scritto anch'io.

+0

buon lavoro Daryl! –

2

Ho creato un Entity OptionSet Enum Mapper Utility per generare automaticamente le proprietà tipizzate Enum specifiche per le entità con limite iniziale. È possibile scaricare sia la fonte e gli eseguibili qui:

Programmatically Generating Properties for OptionSet Enums

Funziona fondamentalmente come parte di un evento di pre-compilazione durante la compilazione della DLL opzione di inserimento/enum normale, generando un file che contiene cs parziale classi per qualsiasi classe che deve avere le proprietà Enum generate per esso.

+0

grazie per aver condiviso! –

+0

@GuidoPreite Prego. Questo non è stato ancora pesantemente testato, quindi se qualcosa non funziona, fammi sapere ... – Daryl

+1

@GuidoPreite So che questo potrebbe essere un tuffo nel passato, ma sono riuscito a farlo funzionare. Vedi la mia altra risposta: http://stackoverflow.com/a/23134431/227436 – Daryl

Problemi correlati