【发布时间】:2013-05-05 16:34:20
【问题描述】:
我有一个使用如下通用方法的 API
public static class DataProvider
{
public static Boolean DeleteDataObject<T>(Guid uid, IDbConnection dbConnection)
{
// Do something here
}
public static IDbConnection GetConnection()
{
// Get connection
}
}
我的应用程序包含在运行时使用 CodeDOM 生成的类,为了跟踪我创建了一个名为 IDataObject 的接口。我正在尝试将每个对象的具体类型传递给上面的通用方法,如下所示:
public static Boolean PurgeDataObject(this IDataObject dataObject, Guid uid)
{
return DataProvider.DeleteDataObject<T>(uid, DataProvider.GetConnection());
}
dataObject 包含一个继承自 IDataObject 的类的实例。我有兴趣获取该类型并将其作为T 传递。我试图找出是否有可能在这里使用dynamic。 typeof() 和 GetType() 不能按照 Here 中的说明工作
【问题讨论】:
-
有一些技巧可以使用动态作为反射和泛型之间的桥梁,但它们需要一个实例。如果您没有实例,MakeGenericMethod 是您的主要工具。或非通用 API...
-
@MarcGravell:
dataObject是一个实例,其中包含我试图提取和传递的类型信息。看看乔恩的答案
标签: c# .net generics dynamic types