预处理器指令反射注入
Posted
技术标签:
【中文标题】预处理器指令反射注入【英文标题】:Preprocessor Directives Reflection Injection 【发布时间】:2012-08-19 02:39:00 【问题描述】:如何通过反射将C# Preprocessor Directives
注入接口?
示例:
我想将#if SILVERLIGHT
注入任何 WCF 服务合约接口。
【问题讨论】:
预处理器命令在代码生成之前进行评估。它们不存在于要反映的程序集中。 【参考方案1】:简短的回答:你不能。 稍微长一点的答案:你的问题一开始就没有意义。
预处理器指令在编译前处理。该处理的结果是新的、修改后的源代码。然后编译该源代码。
例如,如果SILVERLIGHT
符号在编译时没有定义,那么#if SiLVERLIGHT
和#endif
之间的整个代码将被编译器完全忽略,就好像它根本不存在一样。
【讨论】:
【参考方案2】:这是不可能的。根据名称,预处理器指令仅在编译时间之前存在。无处可去。
【讨论】:
以上是关于预处理器指令反射注入的主要内容,如果未能解决你的问题,请参考以下文章