我想将动态类型(在运行时确定)传递给方法泛型类型声明。公开此方法的对象来自第三方,我无法对其进行编辑。
第三方代码公开了两种方法。
obj.Write(string a);
obj.Write<T>(T a); //<-- I want to make <T> determined at runtime
我有一个包含列的数据表,这些列是正确的类型。
理想情况下我想..
obj.Write<dataTable.Columns[0].DataType>( ...
我也尝试过
obj.Write<typeof(dataTable.Rows[0][0])>( ...
但是我怀疑在运行时这不可能吗?
哪个让我解决?
switch (Data.Columns[0].DataType.ToString())
{
case "System.String":
obj.Write<string>( ...
break;
case "System.Int":
obj.Write<int>( ...
break;
case "System.Float":
obj.Write<float>( ...
break;
etc....
}
有更好的方法吗?