У меня есть пользовательское действие WF4 с пользовательским разработчиком (WPF). Я хотел бы иметь немного отличающееся поведение в переопределении CacheMetaData в зависимости от того, если Действие находится в Дизайне или Режиме выполнения.
Править: Причины требования. У нас есть проверка, которая должна искать данные из web.config файла (или один из включает). Во время выполнения мы можем использовать Систему. Конфигурация. ConfigurationManager, и во время проектирования я должен использовать EnvDte для опроса структуры проекта.
Так как Действие может быть отлажено, оно могло в быть VS в любом случае, таким образом, я не могу проверить на это.
Существует ли сервис в WF4, который я могу назвать для сообщения, в каком режиме я нахожусь?
Насколько я знаю, хорошего способа сделать это нет.
Вы можете проверить, используя имя процесса. Если это devenv, вы находитесь в Visual Studio (если вы отлаживаете, это будет имя вашего проекта с пометкой .vshost. Но поскольку дизайнер может быть размещен повторно, это далеко не надежно.
Одна вещь, которую вы могли бы сделать, - это действительно иметь Отделяйте действия во время разработки от действий во время выполнения. Вот что я делаю. Требует немного работы и может оказаться излишним для ваших нужд. Прочтите это сообщение на форуме WF для получения более подробной информации.
Если причиной этого требования является чистая проверка, невозможно Перенесите ли вы логику проверки, требующую EnvDTE, в компонент конструктора, оставив только логику проверки времени выполнения в самом действии?