Как получить ParameterInfo функции с переменным количеством параметров?
Как получить ParameterInfo функции с переменным количеством параметров? Проблема в том, когда я вызываю метод
MyFunction(object o1, out object o2);
Я могу получить параметр Info объекта sendData, но не объект 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
1 ответ
"params" - это синтаксический сахар C#. На самом деле, на уровне метаданных.NET существует только один параметр с именем "sendData" с определенным установленным атрибутом "ParamArray".