如何在运行时改变泛型方法调用中的类型?

时间:2014-07-28 14:39:08

标签: c# generics

我有一个通用的方法,所以:

public void Export<T>(List<T> exportList, string filePath, byte fileType) where T: class

<T>有两种可能:<Category><ProductSupplier>。我不知道我在给定的运行时实例中使用了哪一个;使用哪一个作为参数传递给调用此方法的方法。

是否可以在运行时将变量值传递给<T>?我已经玩过GetMethod / Invoke等等(我已经得到了使用非泛型方法),但它们似乎解决了方法本身,而不是作为改变泛型List类型的机制。

[编辑]事实证明,我的问题有其误解的基础。当我第一次使用Export方法工作时,它采用以下格式:

public void Export<Category>(someCategoryList, "C:\Temp2\myFile.txt", 0) 

我想知道如何在<Category>中插入不同的值而不在设计时明确地使用某种不断扩展的switch语句。事实证明,这很好用:

public void Export(someCategoryList, "C:\Temp2\myFile.txt", 0) 

所以这个问题没有实际意义。我已经能够使用Reflection派生出正确的List(在我的例子中为“someCategoryList”),所以问题就解决了。

0 个答案:

没有答案