Microsoft.JScript.Class.GetExpandoIndexerGetter C# (CSharp) Method

GetExpandoIndexerGetter() private method

private GetExpandoIndexerGetter ( ) : MethodInfo
return System.Reflection.MethodInfo
      internal MethodInfo GetExpandoIndexerGetter(){
        if (this.getItem == null){
          TypeBuilder classwriter = this.classob.GetTypeBuilder();
          this.GetExpandoFieldGetter(classwriter);
          // create the getter
          this.getItem = classwriter.DefineMethod("get_Item", MethodAttributes.Public|MethodAttributes.SpecialName, Typeob.Object, new Type[]{Typeob.String});
          ILGenerator il = this.getItem.GetILGenerator();
          il.Emit(OpCodes.Ldarg_0);
          il.Emit(OpCodes.Call, this.getHashTableMethod);
          il.Emit(OpCodes.Ldarg_1);
          il.Emit(OpCodes.Call, CompilerGlobals.hashtableGetItem);
          il.Emit(OpCodes.Dup);
          Label endif = il.DefineLabel();
          il.Emit(OpCodes.Brtrue_S, endif);
          il.Emit(OpCodes.Pop);
          il.Emit(OpCodes.Ldsfld, CompilerGlobals.missingField);
          il.MarkLabel(endif);
          il.Emit(OpCodes.Ret);
          this.expandoItemProp.SetGetMethod(this.getItem);
        }
        return this.getItem;
      }