0

如何获取参数数量可变的函数的 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);
         }
     }
     ..........
}

提前感谢您帮助我。

阿尔诺

4

1 回答 1

2

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

于 2011-06-23T15:31:58.743 回答