2012-07-08 10 views
5

Spero che ci sia un modo intelligente per farlo. Ho un servizio base generico che ha diversi metodi ... Quindi attualmente ci sono alcuni metodi in questa classe base come Create (T obj). Quello che mi piacerebbe è per il compilatore per creare un nome più intuitiva dei parametri (in base al largo di qualche regola) in modo che quando un'istanza concreta del servizio di base è stato creato in questo modo:Creazione di nomi di parametri significativi con Generics

public class ProductService : BaseService<Product> 

voglio che compilare il metodo ProductService a questo (per esempio):

public Product Create(Product product) 

invece di

public Product Create(Product obj) 

so che può sembrare minore, ma uno stagista mi ha chiesto l'altro giorno e non lo poteva dire al 100% che era non è possibile

+2

Io non conosco alcun modo per realizzare ciò che si sta chiedendo, ma anche usare 'entity' apposed a' obj' avrebbe più senso per me leggere il tuo codice. Soprattutto se la classe è ereditata da un'interfaccia 'IEntity' o da una classe' Entity' di base. – Paul

+0

Effettivamente ... d'accordo ... – Rikon

risposta

3

Per quanto ne so, non c'è modo di ottenerlo automaticamente. Tuttavia, se si voleva davvero farlo comunque, si potrebbe fare il metodo virtual in BaseService, e sovrascrivere in ogni sottoclasse:

public override Product Create(Product product) { 
    return base.Create(product); 
} 
+2

Sono d'accordo che è probabilmente il modo migliore per ottenere ciò che il poster ha richiesto, ma sembra un grande sforzo per un beneficio davvero piccolo. Non consiglierei di farlo davvero, ma funzionerebbe. –

+0

@JonathanRupp: +1; d'accordo - in particolare, perché 'Product obj' o' Product entity 'ha ancora senso semanticamente. –

+0

Sì ... A volte ci sono questi piccoli sottotitoli che mi mancano all'occasione ... speravo in qualcosa come vuoto pubblico Inserisci (T @@ T.GetType(). Name.ToLower()) Inoltre, con quella mentalità, potrei compilare il tempo riflettere su T ... Ma vabbè ... metti un bel da avere con la squadra clr immagino ... – Rikon

Problemi correlati