我需要在c#中使用反射来调用函数。 以下代码适用于具有返回数据类型sqldatareader的函数。
public override void Testmethod()
{
SqlDataReader Reader = (SqlDataReader)method.Invoke(Activator.CreateInstance(type),new object[] {arr});
}
但现在我还需要动态提及返回类型,并依赖于我需要调用函数。
如何动态指定返回类型?
答案 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 ...
}