Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 输出程序集中的方法名_C#_.net_Visual Studio_C# 4.0_Il - Fatal编程技术网

C# 输出程序集中的方法名

C# 输出程序集中的方法名,c#,.net,visual-studio,c#-4.0,il,C#,.net,Visual Studio,C# 4.0,Il,我正在用Visual Studio 2013编译一个针对.NET 4.5的项目,然后用ILDASM再次检查它 我注意到的是,内置版本仍然包含方法名和变量名,我认为应该在发布版本中删除它们,还是需要一个obsfuscator来做到这一点?您需要一个obsfuscator来隐藏方法名和成员名,编译器应该去掉局部变量名,但是使用反射可以出现的任何内容都会被保留,包括类和接口名称、公共和私有方法、公共和私有字段。您需要一个obsfuscator来隐藏方法和成员名称,编译器应该去掉局部变量名称,但是,使用

我正在用Visual Studio 2013编译一个针对.NET 4.5的项目,然后用ILDASM再次检查它


我注意到的是,内置版本仍然包含方法名和变量名,我认为应该在发布版本中删除它们,还是需要一个obsfuscator来做到这一点?

您需要一个obsfuscator来隐藏方法名和成员名,编译器应该去掉局部变量名,但是使用反射可以出现的任何内容都会被保留,包括类和接口名称、公共和私有方法、公共和私有字段。

您需要一个obsfuscator来隐藏方法和成员名称,编译器应该去掉局部变量名称,但是,使用反射可以出现的任何内容都会被保留,包括类和接口名称、公共和私有方法、公共和私有字段。

至于方法名称,编译器不知道您的程序集是否将在另一个项目中使用,因此保留方法名称是合乎逻辑的。虽然变量名不能在定义它们的方法中使用,但我想它对调试(无论是调试还是发布)都很有用,而且它们占用的空间很小


我的建议是,不要使用模糊处理程序,除非您的应用程序包含安全关键代码(然后,我仍然建议只模糊此代码,而不是其他方法)。对于调试和读取异常来说,这是更好的方法。

至于方法名,编译器不知道您的程序集是否将在另一个项目中使用,因此保留方法名是合乎逻辑的。虽然变量名不能在定义它们的方法中使用,但我想它对调试(无论是调试还是发布)都很有用,而且它们占用的空间很小


我的建议是,不要使用模糊处理程序,除非您的应用程序包含安全关键代码(然后,我仍然建议只模糊此代码,而不是其他方法)。这对于调试和读取异常更好。

如果没有方法名,调试堆栈跟踪会有点困难。如果没有/随机名,第三方很难引用程序集并调用您的公共方法…如果没有方法名,调试堆栈跟踪会有点困难。第三方很难引用您的方法程序集并调用您的公共方法,如果它们没有/随机名称。。。