我有一个通用的方法,所以:
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”),所以问题就解决了。