private void GenerateGetFieldInfoForDiscriminator() { MethodBuilder getFieldForDiscrMethod = m_ilEmitHelper.AddMethod(m_builder, GET_FIELD_FOR_DISCR_METHOD, new ParameterSpec[] { new ParameterSpec("discrVal", m_discrType, ParameterSpec.ParameterDirection.s_in) }, new TypeContainer(typeof(FieldInfo)), MethodAttributes.Private | MethodAttributes.HideBySig | MethodAttributes.Static); ILGenerator gen = getFieldForDiscrMethod.GetILGenerator(); GenerateGetFieldInfoForDiscAction action = new GenerateGetFieldInfoForDiscAction(this); Label endOfMethod = gen.DefineLabel(); GenerateSwitchForDiscriminator(gen, action, endOfMethod); gen.MarkLabel(endOfMethod); gen.Emit(OpCodes.Ret); }
private void GenerateGetFieldInfoForDiscriminator() { MethodBuilder getFieldForDiscrMethod = m_ilEmitHelper.AddMethod(m_builder, GET_FIELD_FOR_DISCR_METHOD, new ParameterSpec[] { new ParameterSpec("discrVal", m_discrType, ParameterSpec.ParameterDirection.s_in) }, new TypeContainer(typeof(FieldInfo)), MethodAttributes.Private | MethodAttributes.HideBySig | MethodAttributes.Static); ILGenerator gen = getFieldForDiscrMethod.GetILGenerator(); GenerateGetFieldInfoForDiscAction action = new GenerateGetFieldInfoForDiscAction(this); Label endOfMethod = gen.DefineLabel(); GenerateSwitchForDiscriminator(gen, action, endOfMethod); gen.MarkLabel(endOfMethod); gen.Emit(OpCodes.Ret); }