我正在尝试在我的系统上使用dll。其中一个方法返回在对象浏览器中定义的字典对象
"System.Collections.Generic.Dictionary<<string,1.5>>"
什么是1.5?或者是一些安全机制来锁定dll以防意外使用?
答案 0 :(得分:3)
“1.5”在任何常见的.NET语言中都不是有效的类型名称,它们坚持要用字母开始一个类型名称。重要的是使词法分析器的工作变得简单,编译器的一部分在解析程序之前将源代码预处理为标记。词法分析器将“1.5”标识为数字,而不是标识符。
CLR对此有更多松懈的规则,但是,类似名称的任何内容都是如此。这是由混淆器利用的。在构建程序集后运行的程序,使得难以对程序集中的源代码进行反向工程。 .NET有几种非常好的反编译器,比如Reflector和ILSpy。混淆器旨在打败它们。
您正在使用的程序集被混淆的概率很高。