如何获取参数个数可变的函数的ParameterInfo



如何获取参数个数可变的函数的ParameterInfo?问题是当我调用方法时

MyFunction(object o1, out object o2);

我可以得到sendData的parameterInfo,但不能得到o1和o2对象。

protected object[] MyFunction(params object[] sendData)
{
     StackTrace callStack = new StackTrace(0, false);
     StackFrame callingMethodFrame = callStack.GetFrame(0);
     MethodBase callingMethod = callingMethodFrame.GetMethod();
     ParameterInfo[] parametersInfo = callingMethod.GetParameters();
     List<object> inParams = new List<object>();
     List<object> outParams = new List<object>();
     for (int i = 0; i < sendData.Length; i++)
     {
         object value = sendData[i];
         ParameterInfo info = parametersInfo[parametersInfo.Length - sendData.Length + i];
         if (info.IsOut)
         {
              outParams.Add(value);
         }
         else
         {
              inParams.Add(value);
         }
     }
     ..........
}

提前感谢你对我的帮助。

Arnaud

"params"只是C#语法糖。事实上,在元数据.NET级别,只有一个名为"sendData"的参数具有特定的"ParamArray"属性集。

相关内容

  • 没有找到相关文章

最新更新