为什么dotpeek不能反编译dll中的方法?(无法反编译方法 )?// ISSUE: 无法反编译该方法。
public ChildModel ChildModel
{
get => this.\u003CChildModel\u003Ek__BackingField;
set
{
// ISSUE: unable to decompile the method.
}
}
其他反编译器(例如decompiler.com)反编译它没有任何问题
set
{
if (_propSubscriptions.TryRemove("ChildModel", out var value2))
{
_003CChildModel_003Ek__BackingField.BecameDirty -= value2;
}
if (value != null)
{
Action<BecameDirtyEventArgs> value3 = delegate(BecameDirtyEventArgs args)
{
OnBecameDirty("ChildModel." + ((args != null) ? args.get_PropertyPath() : null));
};
if (_propSubscriptions.TryAdd("ChildModel", value3))
{
value.BecameDirty += value3;
}
}
PropertyModified(ref _003CChildModel_003Ek__BackingField, value, "ChildModel");
}
.method public hidebysig specialname instance void
set_ChildModel(
class Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel 'value'
) cil managed
{ .custom 实例无效 [netstandard]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = (01 00 00 00) .maxstack 4 .locals init (
[0] 类 [System.Private.CoreLib]System.Action`1<类 [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs> V_0,
[1] class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs> V_1,
[2] bool V_2,
[3] bool V_3
)
IL_0000: nop
IL_0001: ldarg.0 // this
IL_0002: ldfld class [System.Collections.Concurrent]System.Collections.Concurrent.ConcurrentDictionary`2<string, class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>> Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.Model::_propSubscriptions
IL_0007: ldstr "ChildModel"
IL_000c: ldloca.s V_0
IL_000e: callvirt instance bool class [System.Collections.Concurrent]System.Collections.Concurrent.ConcurrentDictionary`2<string, class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>>::TryRemove(!0/*string*/, !1/*class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>*/&)
IL_0013: stloc.s V_2
IL_0015: ldloc.s V_2
IL_0017: brfalse.s IL_0029
IL_0019: nop
IL_001a: ldarg.0 // this
IL_001b: ldfld class Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.Model::'<ChildModel>k__BackingField'
IL_0020: ldloc.s V_0
IL_0022: callvirt instance void Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel::remove_BecameDirty(class [mscorlib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>)
IL_0027: nop
IL_0028: nop
IL_0029: ldarg.1 // 'value'
IL_002a: brfalse.s IL_005c
IL_002c: nop
IL_002d: ldarg.0 // this
IL_002e: ldftn instance void Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.Model::'<ChildModel>NewSubscriptionLambda'(class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs)
IL_0034: newobj instance void class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>::.ctor(object, native int)
IL_0039: stloc.1 // V_1
IL_003a: ldarg.0 // this
IL_003b: ldfld class [System.Collections.Concurrent]System.Collections.Concurrent.ConcurrentDictionary`2<string, class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>> Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.Model::_propSubscriptions
IL_0040: ldstr "ChildModel"
IL_0045: ldloc.s V_1
IL_0047: callvirt instance bool class [System.Collections.Concurrent]System.Collections.Concurrent.ConcurrentDictionary`2<string, class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>>::TryAdd(!0/*string*/, !1/*class [System.Private.CoreLib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>*/)
IL_004c: stloc.3 // V_3
IL_004d: ldloc.3 // V_3
IL_004e: brfalse.s IL_005b
IL_0050: nop
IL_0051: ldarg.1 // 'value'
IL_0052: ldloc.s V_1
IL_0054: callvirt instance void Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel::add_BecameDirty(class [mscorlib]System.Action`1<class [Sqrt.Bws.PersistentStateStorage.Contract]Sqrt.Bws.PersistentStateStorage.Contract.BecameDirtyEventArgs>)
IL_0059: nop
IL_005a: nop
IL_005b: nop
IL_005c: ldarg.0 // this
IL_005d: ldarg.0 // this
IL_005e: ldflda class Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.Model::'<ChildModel>k__BackingField'
IL_0063: ldarg.1 // 'value'
IL_0064: ldstr "ChildModel"
IL_0069: call instance void Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.Model::PropertyModified<class Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel>(!!0/*class Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel*/&, !!0/*class Sqrt.Bws.PersistentStateStorage.Fody.Tests.TestAssembly.ChildModel*/, string)
IL_006e: nop
IL_006f: ret
} // 方法结束 Model::set_ChildModel