В IL нет такой вещи как свойства. Есть только поля и методы. Конструкция свойства C # преобразуется компилятором в методы get_PropertyName
и set_PropertyName
, поэтому вы должны вызывать эти методы для доступа к свойству.
Пример (отладка) IL для кода
var s = "hello world";
var i = s.Length;
IL
.locals init ([0] string s,
[1] int32 i)
IL_0000: nop
IL_0001: ldstr "hello world"
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: callvirt instance int32 [mscorlib]System.String::get_Length()
IL_000d: stloc.1
Как вы можете видеть, свойство Length доступно через вызов get_Length
.