Здравствуйте, VladD2, Вы писали:
VD>Начнем с более простого теста воспроизводящего багу:...
А вот его IL:
.method private hidebysig static class ITest Test() cil managed
{
.maxstack 4
.locals init (
[0] int32 x)
L_0000: nop
L_0001: nop
L_0002: ldc.i4.1
L_0003: stloc.0
L_0004: nop
L_0005: ldloc.0
L_0006: ldc.i4.1
L_0007: beq L_0012
L_000c: nop
L_000d: br L_0020
L_0012: nop
L_0013: nop
L_0014: nop
L_0015: nop
L_0016: newobj instance void B::.ctor()
L_001b: br L_0027
L_0020: nop
L_0021: nop
L_0022: newobj instance void C::.ctor()
L_0027: nop
L_0028: nop
L_0029: nop
L_002a: ret
}
Остается понять что в нем не так и как это исправить.