Пример #1
0
        /// <summary>
        /// 指定したフィールドの値を取得します。
        /// </summary>
        /// <param name="type">フィールドを保持している型を指定します。</param>
        /// <param name="fieldName">フィールドの名前を指定します。</param>
        /// <param name="is_static">静的フィールドか否かを指定します。</param>
        /// <param name="is_private">非公開メンバか否かを指定します。</param>
        public void EmitLdfld(System.Type type, string fieldName, bool is_static, bool is_private)
        {
            Ref::BindingFlags BINDING
                = (is_private?Ref::BindingFlags.NonPublic:Ref::BindingFlags.Public)
                  | (is_static?Ref::BindingFlags.Static:Ref::BindingFlags.Instance);
            Ref::FieldInfo finfo = type.GetField(fieldName, BINDING);

            gen.Emit(Emit::OpCodes.Ldfld, finfo);
        }
Пример #2
0
        private void Force0x20_0()
        {
            Ref::BindingFlags BF = Ref::BindingFlags.Instance | Ref::BindingFlags.NonPublic;

            System.Type ptype = typeof(System.Windows.Forms.PictureBox);

            Ref::FieldInfo fstate = ptype.GetField("pictureBoxState", BF);

            System.Collections.Specialized.BitVector32 vec = (System.Collections.Specialized.BitVector32)fstate.GetValue(this);
            vec[0x20] = false;
            fstate.SetValue(this, vec);
        }