Ho un'API utilizzando il metodo generico come seguirePass Tipo di oggetto concreto come parametro per il metodo generico
public static class DataProvider
{
public static Boolean DeleteDataObject<T>(Guid uid, IDbConnection dbConnection)
{
// Do something here
}
public static IDbConnection GetConnection()
{
// Get connection
}
}
La mia applicazione contiene classi generate utilizzando CodeDOM in fase di esecuzione, e al fine di tenere traccia di Ho creato un'interfaccia denominata IDataObject
. Sto cercando di passare il tipo concreto di ogni oggetto al metodo generico di cui sopra come segue:
public static Boolean PurgeDataObject(this IDataObject dataObject, Guid uid)
{
return DataProvider.DeleteDataObject<T>(uid, DataProvider.GetConnection());
}
dataObject
contiene un'istanza di una classe che eredita da IDataObject
. Sono interessato a ottenere quel tipo e passarlo come T
. Sto cercando di scoprire se è possibile in qualche modo utilizzare dynamic
qui. typeof()
e GetType()
non funziona come indicato nel Here
Ci sono alcuni trucchi per utilizzare la dinamica come ponte tra riflessione e generici, ma richiedono un'istanza. Se non si dispone di un'istanza, MakeGenericMethod è lo strumento principale. O un'API non generica ... –
@MarcGravell: 'dataObject' è un'istanza che contiene le informazioni sul tipo che sto cercando di estrarre e trasmettere. Dai un'occhiata alla risposta di Jon –