mam API przy użyciu metody rodzajowe jak postępowaćPrzełęcz konkretny typ obiektu jako parametr do metody rodzajowe
public static class DataProvider
{
public static Boolean DeleteDataObject<T>(Guid uid, IDbConnection dbConnection)
{
// Do something here
}
public static IDbConnection GetConnection()
{
// Get connection
}
}
Moja aplikacja zawiera klasy wygenerowane przy użyciu CodeDOM w czasie wykonywania, a także w celu śledzić stworzyłem interfejs o nazwie IDataObject
. Staram się przekazać konkretny typ każdego obiektu do metody rodzajowe powyżej następująco:
public static Boolean PurgeDataObject(this IDataObject dataObject, Guid uid)
{
return DataProvider.DeleteDataObject<T>(uid, DataProvider.GetConnection());
}
dataObject
zawiera instancję klasy, które dziedziczą z IDataObject
. Jestem zainteresowany uzyskaniem tego typu i przekazać go jako T
. Próbuję dowiedzieć się, czy jest możliwe, aby użyć tutaj dynamic
. typeof()
i GetType()
nie działa jak stwierdzono w Here
Istnieje kilka sztuczek, które wykorzystują dynamikę jako pomost między refleksją a rodzajami, ale wymagają instancji. Jeśli nie masz instancji, MakeGenericMethod jest Twoim głównym narzędziem. Lub nietypowy API ... –
@MarcGravell: 'dataObject' jest instancją zawierającą informacje o typach, które próbuję wyodrębnić i przekazać. Spójrz na odpowiedź Jona –