Могу ли я иметь глобальные определения препроцессора в библиотеке C #?

В C # вы можете выполнять условную компиляцию с помощью макросов, аналогичных синтаксису C / C ++.Это позволило бы выполнить следующее:

#define MYMACRO
....
#if MYMACRO
//some C# code logic 
#else
//some other C# code logic

Мне нужно определить некоторые макросы в специальном файле в проекте библиотеки C #, и мне нужно, чтобы эти макросы были видны внутри всей библиотеки после того, как они были определены. Проблема в том, что приведенный выше код работает только для одного файла.

Я знаю еще один способ обойти эту проблему - добавить макросы в команду сборки. Это позаботится об определении макросов для всей .dll , и у меня будут проверки #if - #else , работающие везде, где я хочу внутри библиотеки. Проблема с этим подходом заключается в том, что я хочу иметь возможность легко поддерживать макросы. Было бы идеально, если бы они были в файле внутри проекта. Я также хотел бы иметь несколько комментариев внутри, чтобы я знал, что делает каждый макрос. Это не применимо, если мне нужно передать макросы в качестве параметров сборки. Другая причина - возможность включать / выключать макрос, просто комментируя его и исследуя поведение.

Есть ли достойный способ выполнить мое требование? Я бы предпочел не иметь дело с какими-либо инструментами автоматизации сборки, такими как MSBuild , NAnt или что-то в этом роде, тем не менее, если другой способ невозможен, я был бы признателен за совет, который вы считаете лучший выбор.

6
задан Brian Tompsett - 汤莱恩 10 July 2016 в 16:17
поделиться