C# с помощью Условного выражения () с переменной среды

Как я использую Условное выражение ("Condition1") атрибут, где "Condition1" является переменной среды. Справка говорит, что может быть сделана, но не говорит как?

6
задан Cœur 5 March 2017 в 04:44
поделиться

3 ответа

Не уверен, что Условный ( строковое условие) выполняет, но вы можете получить переменные среды, используя Environment.ExpandEnvironmentVariables .


Если вы говорите о ConditionalAttribute, вам не повезло. Этот атрибут оценивается во ВРЕМЯ КОМПИЛЯЦИИ на вашем компьютере разработки (или на сервере сборки). Это не действует в RUNTIME, где вы захотите сделать что-то другое в зависимости от состояния компьютера пользователя (как указано переменной среды).

Вы можете использовать ранее упомянутый метод класса Environment , чтобы определить в теле метода, следует ли вам продолжать выполнение. Вероятно, это ваш лучший выбор.

3
ответ дан 16 December 2019 в 21:36
поделиться

Я думаю, это то, что вы ищете http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx

Слово "переменная окружения" относится к окружению VS, а не к ОС или любому другому. Вы можете просто пометить свои классы или методы DEBUG или любой другой пользовательской переменной; тогда эти классы и методы все еще существуют при компиляции, но когда генерируется IL код, они просто пропускаются - в случае, если эта переменная не определена (как сказано в примере).

Надеюсь, это поможет.

Pz, разработчик TaskConnect

5
ответ дан 16 December 2019 в 21:36
поделиться

Вам не нужно делать ничего, кроме как создать переменную окружения (например, со значением 1) и затем ссылаться на нее по имени в ConditionalAttribute. Переменная будет должна быть создана в диалоге "Переменные среды", доступном через вкладку "Дополнительно" диалога "Свойства системы"; т.е. вы не можете просто открыть командную строку и установить переменную там, поскольку это значение будет существовать только в этой строке и будет потеряно, когда строка будет закрыта.

0
ответ дан 16 December 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: