我正在制作两个版本的库;一个用于交付给客户,一个用于内部使用。
两个版本之间的区别在于内部版本将包含客户不得拥有的方法。
到目前为止,我已经使用旧式#ifdef'ing来区分代码,但我想转换到System.Diagnostics.Conditional。
如果我使用System.Diagnostics.Conditional排除某个方法,用户是否可以通过某种方式发现该方法,对其进行反向工程或执行该方法?
提前致谢!
答案 0 :(得分:2)
该方法仍然存在,但calls are removed:
将ConditionalAttribute应用于某个方法表示编译器不应将 对方法的调用编译为Microsoft中间语言(MSIL)
因此,在反编译时,您的客户端可以发现方法体,当它们引用包含该方法的程序集时,它们只需从代码中调用它即可。