0

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

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

但是现在我还需要动态地提及返回类型,这取决于我需要调用该函数。

如何动态指定返回类型?

4

1 回答 1

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 ...
}
于 2013-10-17T11:26:15.067 回答