使用c#中的反射动态地包含返回类型?

时间:2013-10-17 11:22:19

标签: c# system.reflection

我需要在c#中使用反射来调用函数。 以下代码适用于具有返回数据类型sqldatareader的函数。

 public override void Testmethod()
   {
        SqlDataReader Reader = (SqlDataReader)method.Invoke(Activator.CreateInstance(type),new object[] {arr});
   }

但现在我还需要动态提及返回类型,并依赖于我需要调用函数。

如何动态指定返回类型?

1 个答案:

答案 0 :(得分:1)

您可以通过

获取方法的返回类型
Type returnType = method.ReturnType;

然后你可以比较类型,调用你想要的方法并将它的返回类型转换为编译时已知的类型(在这个例子中,SqlDataReader

if (returnType == typeof(SqlDataReader))
{
    SqlDataReader Reader = (SqlDataReader)method.Invoke(Activator.CreateInstance(type),new object[] {arr});
}

对其他案件也这样做

else if (returnType == typeof(string))
{
    // invoke some other method and convert it's return type to a string ...
}