C# .NET反编译程序集具有'&';在生成生成生成错误的类型之后
我继承了一些程序集,据我所知,这些程序集是使用Visual Studio 2005、.NET Framework 1.1(?)和VB.NET生成的。不幸的是,源代码不再对我可用。因此,我使用dotPeek反编译程序集(作为C#),并尝试对项目进行反向工程。生成的源代码有几行类似于:C# .NET反编译程序集具有'&';在生成生成生成错误的类型之后,c#,.net,vb.net,dotpeek,C#,.net,Vb.net,Dotpeek,我继承了一些程序集,据我所知,这些程序集是使用Visual Studio 2005、.NET Framework 1.1(?)和VB.NET生成的。不幸的是,源代码不再对我可用。因此,我使用dotPeek反编译程序集(作为C#),并尝试对项目进行反向工程。生成的源代码有几行类似于: // ISSUE: explicit reference operation // ISSUE: variable of a reference type string& szDataDescr = @str
// ISSUE: explicit reference operation
// ISSUE: variable of a reference type
string& szDataDescr = @str;
“string&”对我来说是陌生的(而且visualstudio也很明显)。Visual Studio 2015未将此识别为有效,我收到了编译错误。“&”是dotPeek添加的东西,还是某个旧的.NET构造在当时是有效的?使用“type&”模式的地方都会出现类似的注释,因此我假设它是关联的。类型名称后的&符号表示它是引用类型,变量名称前的@会生成对该变量的引用 如果您试图编译代码,您将得到一个错误,因为编译器将&视为按位and,并且会抱怨您使用了一个类型,就好像它是一个变量一样。但这没关系,因为您不是从C#源文件获取的 最好的解决方案是使用不同的反编译器
- ILSpy:
- .Net代码反映:
- .Net反射器:
查看此处了解有关的详细信息。类型名称后的&符号表示它是引用类型,变量名称前的@生成对该变量的引用 如果您试图编译代码,您将得到一个错误,因为编译器将&视为按位and,并且会抱怨您使用了一个类型,就好像它是一个变量一样。但这没关系,因为您不是从C#源文件获取的 最好的解决方案是使用不同的反编译器
- ILSpy:
- .Net代码反映:
- .Net反射器:
查看此处以了解更多信息。您是否尝试过其他反编译器?产生了什么?查看有关的更多信息&谢谢。这个链接是有益的。你正在使用一个相当糟糕的反编译器,你得到了你所付出的。在MSIL中正式合法,C++/CLI支持创建对变量的引用。但在VB.NET或C#中,变量引用不会破坏属性的抽象。如果它实际上是用C++/CLI编写的,那么,请立即停止,并以正确的方式执行此操作。接下来打个电话。你试过其他反编译程序吗?产生了什么?查看更多关于&谢谢。这个链接是有益的。你正在使用一个相当糟糕的反编译器,你得到了你所付出的。在MSIL中正式合法,C++/CLI支持创建对变量的引用。但在VB.NET或C#中,变量引用不会破坏属性的抽象。如果它实际上是用C++/CLI编写的,那么,请立即停止,并以正确的方式执行此操作。接下来用电话。