Факты:
Правильная кодировка инструкции CILrethrow
код операции -представляет собой последовательность из двух -байтов FE 1A
.
OpCodes.Rethrow.Value
(который имеет типshort
)имеет значение 0xFE1A
на моей маленькой -машине с порядком байтов.
BitConverter
учитывает порядок следования байтов машины при преобразовании в/из последовательностей байтов.
На моей маленькой -машине с порядком байтов BitConverter.GetBytes(OpCodes.Rethrow.Value)
приводит к последовательности байтов 1A FE
.
Это означает, что сериализация OpCode.Value
на машине с маленьким -порядком байтов с использованием BitConverter
не дает правильного кодирования кода операции -; порядок байтов обратный.
Вопросы:
Является ли порядок байтовOpCode.Value
задокументировано (и если да, то где? ), или это "деталь реализации"?
Приводит ли шаг 4 выше на большой машине -endian к неправильному порядку байтов? То есть будет ли OpCodes.Rethrow.Value
равно 0x1AFE
на большой машине -с порядком байтов?