Как пользовательская активность WF4 может определить, что она находится в режиме разработки v. В режиме выполнения
У меня есть пользовательское действие WF4 с дизайнером (WPF). Я хотел бы иметь немного другое поведение в переопределении CacheMetaData в зависимости от того, находится ли Activity в режиме Design или Execution.
Изменить: причины для требования. У нас есть проверка, которая должна искать данные из файла web.config (или одного из его включений). Во время выполнения мы можем использовать System.Configuration.ConfigurationManager, а во время разработки мне нужно использовать EnvDte для опроса структуры проекта.
Поскольку Activity может быть отлажена, она может быть VS в любом случае, поэтому я не могу проверить это.
Могу ли я позвонить в WF4, чтобы узнать, в каком режиме я нахожусь?
3 ответа
Насколько я знаю, нет хорошего способа сделать это.
Вы можете проверить, используя имя процесса. Если это devenv, вы находитесь в Visual Studio (если вы отлаживаете, это будет имя вашего проекта с тегом.vshost. Но так как дизайнер может быть размещен, это далеко не надежно.
Если причиной этого требования является чисто валидация, не могли бы вы переместить логику валидации, требующую EnvDTE, в компонент конструктора, оставив только логику валидации во время самого действия?