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); }
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)); }
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)); }
public void SwissILGetField() { var swiss = MemberUtils.GenerateGetMethod(_field); for (var i = 0; i < Reps; i++) { swiss(this); } }
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)); }
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); }
public GetMethod GenerateGetPropertyViaIL() => MemberUtils.GenerateGetMethod(_property);
public GetMethod GenerateGetFieldViaIL() => MemberUtils.GenerateGetMethod(_field);