Sto avendo una classe generica in cui ho una funzione per ottenere le proprietà dell'oggetto generico passato. È come di seguito.ottiene proprietà utilizzando le riflessioni per l'oggetto di tipo generico
public class ExportToCsv<T>
where T: class
{
public ExportToCsv(List<T> obj)
{
this.Data = obj;
}
public StringBuilder CreateRows()
{
IEnumerable<PropertyInfo> properties = typeof(T).GetProperties();
}
}
Funziona bene e mi restituisce le proprietà se mi passate l'oggetto selezionando da un oggetto (classe) come di seguito
//GetLeadingRoutingRecords returns a class/object
var result = from obj in GetLeadRoutingRecords()
select new
{
LeadRoutingId = obj.LeadRoutingID,
Make = obj.Make
};
e passare tale risultato come result.ToList();
ma quando provo per creare il mio oggetto anonimo creando una classe per le proprietà come sotto non funziona non restituisce alcuna proprietà
Nota: il codice seguente viene chiamato in un ciclo e funziona bene e passando alla funzione sopra può vedere tutti i valori tramite debug.
public CsvReport function return(){
return new CsvReport
{
ShopName = this.val,
TargetVehicleName = val
}.ToList();
}
classe che ho scritto per l'oggetto anonimo alto è come di seguito:
public class CsvReport
{
public string ShopName { get; set; }
public string TargetVehicleName { get; set; }
}
quindi in questo caso la sua non funziona, sto selezionando primo record e ottenere proprietà come qui di seguito
this.Data.First().GetType().GetProperties();
Desidero utilizzare il primo modello anche qui, ovvero type(T).GetProperties
Quindi, qualsiasi soluzione per favore ........................
vostro "il codice qui sotto" non ha molto senso, che lo rende un po 'difficile da commentare - e il vostro "oggetto anonimo" ... * non è anonimo *: è un 'CsvReport'. Puoi chiarire? Mostrare idealmente il codice in cui si chiama effettivamente "ExportToCsv'? Inoltre: come viene dichiarato 'this.Data'? –
si prega di fornire un esempio più piccolo, quindi è più facile concentrarsi sul problema – lordkain
Come stai istanziando il tuo 'ExportToCsv '? –