Mono.Cecil: работа может дестабилизироваться во время выполнения

Я следил за подсказками здесь, я даже вставил следующие строки:

var MSILWorker = prop.SetMethod.Body.GetILProcessor();
MSILWorker.Body.InitLocals = true;

У меня есть два свойства в двух классах:

 [NotifyProperty]
 public int Number { get; set; }

а также

 [NotifyProperty]
 public string Name { get; set; }

Сгенерированный код IL полностью идентичен, за исключением, конечно, названия свойств и типа поля поддержки. Однако первый выдает исключение VerificationException («Операция может дестабилизировать время выполнения»), а второй - нет. Что я мог сделать не так?

изменить: вот оскорбительный IL:

.method public hidebysig specialname instance void set_Number(int32 'value') cil managed
{
    .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor()
    .maxstack 3
    L_0000: nop 
    L_0001: ldarg.0 
    L_0002: ldarg.1 
    L_0003: stfld int32 TestApplication.SLTest.SLBOComposite::<Number>k__BackingField
    L_0008: ldarg.0 
    L_0009: ldstr "Number"
    L_000e: call instance void TestApplication.SLTest.SLBOComposite::RaisePropertyChanged(string)
    L_0013: nop 
    L_0014: ldarg.0 
    L_0015: ldstr "Number"
    L_001a: ldarg.1 
    L_001b: call instance void W3B.TestApplication.SLTest.SLBOComposite::Validate(string, object)
    L_0020: nop 
    L_0021: ret 
}

person TDaver    schedule 21.01.2011    source источник


Ответы (1)


Неважно. :)

 L_001b: box int32

Решение есть.

person TDaver    schedule 21.01.2011