请注意,以下是dotNet反射器无法正确分解的罕见情况的示例。在绝大多数情况下,它可以很好地工作,而且我并不是说这必然是反射器中的一个缺陷。这可能是保护或混淆的结果,也可能是有关程序集上的非托管代码。DotNet反射器 - 为什么我不能反汇编XmlHierarchicalEnumerable?
我尝试在dotnet反射器中反汇编System.Web.UI.WebControls.XmlHierarchicalEnumerable。仿制药似乎都搞砸了,如:
// Nested Types
[CompilerGenerated]
private sealed class GetEnumerator>d__0 : IEnumerator<object>,
IEnumerator, IDisposable
{
// Fields
private int <>1__state;
private object <>2__current;
public XmlHierarchicalEnumerable <>4__this;
public IEnumerator <>7__wrap2;
public IDisposable <>7__wrap3;
public XmlNode <node>5__1;
在其他组件我有时会小方块(我知道这通常代表“未知符号”)代替类名,例如:
dictionary1.Add("autopostbackonselect", 0x34);
ᜀ.ᜌ = dictionary1;
}
if (ᜀ.ᜌ.TryGetValue(key, out num))
{
switch (num)
什么给了?有人知道吗?
我相信我记得有一些非可打印的ASCII字符是合法的CLR标识符,可用于编译器生成的代码 – jeffora 2010-02-16 06:47:20
casperOne:感谢您的澄清。该代码甚至在内部看起来并不一致(例如'GetEnumerator> d__0'),但我完全没有使用CLR规则,因此很好地解释了它。如你所料,我只是反编译.NET 2.0,以便我可以解决一些更可怕的错误。我厌倦了它零碎的东西,所以使用FileDisassembler我只是拉动整个System.Web程序集。它几乎可以编译 - 只有两到三个这样的类阻止它。 第二个示例是一个商业用户界面AJAX控件(不是Telerik,但喜欢它们)的品牌。 – 2010-02-23 12:16:39
Reflector ver 5.1.6.0 .Net Framework 2.0。50727.3603 – 2010-02-23 12:19:12