Как пользовательская активность WF4 может определить, что она находится в режиме разработки v. В режиме выполнения

У меня есть пользовательское действие WF4 с дизайнером (WPF). Я хотел бы иметь немного другое поведение в переопределении CacheMetaData в зависимости от того, находится ли Activity в режиме Design или Execution.

Изменить: причины для требования. У нас есть проверка, которая должна искать данные из файла web.config (или одного из его включений). Во время выполнения мы можем использовать System.Configuration.ConfigurationManager, а во время разработки мне нужно использовать EnvDte для опроса структуры проекта.

Поскольку Activity может быть отлажена, она может быть VS в любом случае, поэтому я не могу проверить это.

Могу ли я позвонить в WF4, чтобы узнать, в каком режиме я нахожусь?

3 ответа

Одна вещь, которую вы могли бы сделать, - это на самом деле отделить время разработки от действия времени выполнения. Это то, что я делаю. Требуется немного работы и может быть излишним для ваших нужд. Проверьте это сообщение на форуме WF для более подробной информации.

Насколько я знаю, нет хорошего способа сделать это.

Вы можете проверить, используя имя процесса. Если это devenv, вы находитесь в Visual Studio (если вы отлаживаете, это будет имя вашего проекта с тегом.vshost. Но так как дизайнер может быть размещен, это далеко не надежно.

Если причиной этого требования является чисто валидация, не могли бы вы переместить логику валидации, требующую EnvDTE, в компонент конструктора, оставив только логику валидации во время самого действия?

Другие вопросы по тегам