示例#1
0
 /// <inheritdoc/>
 public override ParameterInfo[] GetParameters()
 {
     if (parameters == null)
     {
         parameters = new ParameterInfo[this.MethodDefSig.ParamCount];
         for (int i = 0; i < parameters.Length; i++)
         {
             string name;
             try {
                 // index = 0 is return parameter
                 name = this.DebugModule.MetaData.GetParamPropsForMethodIndex((uint)this.MetadataToken, (uint)i + 1).Name;
             } catch {
                 name = String.Empty;
             }
             int iCopy = i;
             parameters[i] =
                 new DebugParameterInfo(
                     this,
                     name,
                     DebugType.CreateFromSignature(this.DebugModule, this.MethodDefSig.Parameters[i].Type, declaringType),
                     i,
                     delegate(StackFrame context) { return(context.GetArgumentValue(iCopy)); }
                     );
         }
     }
     return(parameters);
 }
示例#2
0
 /// <inheritdoc/>
 public override ParameterInfo[] GetParameters()
 {
     if (parameters == null) {
         parameters = new ParameterInfo[this.MethodDefSig.GetParamCount()];
         for(int i = 0; i < parameters.Length; i++) {
             string name;
             try {
                 // index = 0 is return parameter
                 name = this.DebugModule.MetaData.GetParamPropsForMethodIndex((uint)this.MetadataToken, (uint)i + 1).Name;
             } catch {
                 name = String.Empty;
             }
             int iCopy = i;
             parameters[i] =
                 new DebugParameterInfo(
                     this,
                     name,
                     DebugType.CreateFromSignature(this.DebugModule, this.MethodDefSig.Params[i], declaringType),
                     i,
                     delegate (StackFrame context) { return context.GetArgumentValue(iCopy); }
                 );
         }
     }
     return parameters;
 }