动态包含返回类型 动态使用 C# 中的反射
本文关键字:动态 反射 包含 返回类型 | 更新日期: 2023-09-27 18:35:42
我有一个要求,即在c#中使用反射调用函数。以下代码适用于具有返回数据类型 sqldatareader 的函数。
public override void Testmethod()
{
SqlDataReader Reader = (SqlDataReader)method.Invoke(Activator.CreateInstance(type),new object[] {arr});
}
但是现在我需要动态地提及返回类型,并且取决于我需要调用该函数。
如何动态指定返回类型?
你可以通过以下方式获取方法的返回类型
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 ...
}