使用System.Diagnostics.Conditional从库中排除方法

时间:2014-02-15 16:34:43

标签: c#

我正在制作两个版本的库;一个用于交付给客户,一个用于内部使用。

两个版本之间的区别在于内部版本将包含客户不得拥有的方法。

到目前为止,我已经使用旧式#ifdef'ing来区分代码,但我想转换到System.Diagnostics.Conditional。

如果我使用System.Diagnostics.Conditional排除某个方法,用户是否可以通过某种方式发现该方法,对其进行反向工程或执行该方法?

提前致谢!

1 个答案:

答案 0 :(得分:2)

该方法仍然存在,但calls are removed

  

将ConditionalAttribute应用于某个方法表示编译器不应将 对方法的调用编译为Microsoft中间语言(MSIL)

因此,在反编译时,您的客户端可以发现方法体,当它们引用包含该方法的程序集时,它们只需从代码中调用它即可。