动态包含返回类型 动态使用 C# 中的反射

本文关键字:动态 反射 包含 返回类型 | 更新日期: 2023-09-27 18:35:42

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

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

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

如何动态指定返回类型?

动态包含返回类型 动态使用 C# 中的反射

你可以通过以下方式获取方法的返回类型

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 ...
}