コード例 #1
0
        public BenchmarkGet()
        {
            _property = typeof(BenchmarkGet).GetProperty(nameof(SomeProperty), BindingFlags.Public | BindingFlags.Instance);
            _field    = typeof(BenchmarkGet).GetField(nameof(SomeField), BindingFlags.Public | BindingFlags.Instance);

            _getProperty = MemberUtils.GenerateGetMethod(_property);
            _getField    = MemberUtils.GenerateGetMethod(_field);
        }
コード例 #2
0
        public void Static_ReferenceType_Field()
        {
            ValueType.Static_ReferenceType_Field = Magic_ReferenceType;

            var getter = MemberUtils.GenerateGetMethod(ValueType.FieldInfo_Static_ReferenceType_Field);

            Assert.Equal(Magic_ReferenceType, getter(null));
        }
コード例 #3
0
        public void Static_ValueType_Property()
        {
            ValueType.Static_ValueType_Property = Magic_ValueType;

            var getter = MemberUtils.GenerateGetMethod(ValueType.PropertyInfo_Static_ValueType_Property);

            Assert.Equal(Magic_ValueType, getter(null));
        }
コード例 #4
0
        public void SwissILGetField()
        {
            var swiss = MemberUtils.GenerateGetMethod(_field);

            for (var i = 0; i < Reps; i++)
            {
                swiss(this);
            }
        }
コード例 #5
0
        public void SwissILGetProperty()
        {
            var swiss = MemberUtils.GenerateGetMethod(_property);

            for (var i = 0; i < Reps; i++)
            {
                swiss(this);
            }
        }
        public void Instance_ReferenceType_Field()
        {
            var instance = new ReferenceType();

            instance.Instance_ReferenceType_Field = Magic_ReferenceType;

            var getter = MemberUtils.GenerateGetMethod(ReferenceType.FieldInfo_Instance_ReferenceType_Field);

            Assert.Equal(Magic_ReferenceType, getter(instance));
        }
        public void Instance_ValueType_Property()
        {
            var instance = new ValueType();

            instance.Instance_ValueType_Property = Magic_ValueType;

            var getter = MemberUtils.GenerateGetMethod(ValueType.PropertyInfo_Instance_ValueType_Property);

            Assert.Equal(Magic_ValueType, getter(instance));
        }
コード例 #8
0
        public void Test()
        {
            var tuple = ("Test", default(object));

            var field = tuple.GetType()
                        .GetField(nameof(tuple.Item1), BindingFlags.Public | BindingFlags.Instance);

            var getter = MemberUtils.GenerateGetMethod(field);

            var testValue = getter(tuple);

            Assert.Equal(tuple.Item1, testValue);
        }
コード例 #9
0
 public GetMethod GenerateGetPropertyViaIL()
 => MemberUtils.GenerateGetMethod(_property);
コード例 #10
0
 public GetMethod GenerateGetFieldViaIL()
 => MemberUtils.GenerateGetMethod(_field);