je une méthode comme ça:C# passer par générique en tant que paramètre
private Contact GetContactFromDbReaderWithSingleResult(DbDataReader dbReader)
{
if (dbReader.HasRows)
{
return new DataReaderReflection().DataReaderToEntity<Contact>(dbReader)[0];
}
return null;
}
et alors je pourrais avoir une méthode assez similaire comme ça:
private Email GetEmailFromDbReaderWithSingleResult(DbDataReader dbReader)
{
if (dbReader.HasRows)
{
return new DataReaderReflection().DataReaderToEntity<Email>(dbReader)[0];
}
return null;
}
La signature du DataReaderToEntity-Méthode est : Maintenant, je veux créer une variante générique GetGenericEntityFromDbReaderWithSingleResullt
.
Mon approche ressemble à ça, mais il corrige pas:
private object? GetEntityFromDbReaderWithSingleResult<T>(DbDataReader dbReader)
{
if (dbReader.HasRows)
{
return new DataReaderReflection().DataReaderToEntity<typeof(T)>(dbReader)[0];
}
return null;
}
En apprentissage pour faire face aux génériques mais ... Qu'est-ce que je fais mal?
Merci d'avance!
Il est '.DataReaderToEntity()' ' –
Rabban
DataReaderToEntity' 'devrait juste être DataReaderToEntity '? –
DavidG
Et les méthodes return-type devraient probablement être juste 'T', pas' object? '. – HimBromBeere