Директивы препроцессора
Как вводить C# Preprocessor Directives
на интерфейс по отражению?
Пример:
Я хочу сделать инъекцию #if SILVERLIGHT
к любому интерфейсу контракта на обслуживание WCF.
2 ответа
Краткий ответ: вы не можете.
Немного более длинный ответ: ваш вопрос вообще не имеет смысла.
Директивы препроцессора обрабатываются перед компиляцией. Результатом этой обработки является новый измененный исходный код. Этот исходный код затем компилируется.
Например, если SILVERLIGHT
символ не определен во время компиляции, тогда весь код между #if SiLVERLIGHT
а также #endif
будет полностью игнорироваться компилятором, как будто его там даже не было.
Это невозможно. Как следует из названия, директивы препроцессора существуют только непосредственно перед временем компиляции. Нигде более.