.NET: MethodDefinition.Body.InitLocals == false? - PullRequest
0 голосов
/ 29 июня 2019

Оба System.Reflection и Mono.Cecil имеют свойство InitLocals где-нибудь в теле метода [1] [2], которое - в последнем случае - по умолчанию равно false (как любой нормальный целочисленный тип по умолчанию равен 0). Произведенные сборки могут потерпеть неудачу до peverify по следующей причине:

Not Verifiable: Method with locals variable but without init locals set

Отсюда возникает вопрос: каковы преимущества для Mono.Cecil явной установки этого значения вместо использования механизма получения свойства, как System.Reflection? Каковы варианты использования?

[1] https://docs.microsoft.com/en-us/dotnet/api/system.reflection.methodbody.initlocals?view=netcore-2.2#System_Reflection_MethodBody_InitLocals

[2] https://github.com/jbevain/cecil/blob/749710aafc99e7fb1372640472344059b75dc075/Mono.Cecil.Cil/MethodBody.cs#L45

...