Я пытаюсь переназначить конструктор рабочих процессов WF4. На вкладке «Импорт» я хотел бы импортировать некоторые пространства имен по умолчанию. Это выглядит так:
Импортированные пространства имен http://imageshack.us/m/850/5383/imports.png
После долгих исследований я понял, что если вы посмотрите на
workflowDesigner.Context.Items.GetValue<ImportedNamespaceContextItem>().ImportedNamespaces
вы увидите вещи, которые уже импортированы. Однако добавление пространства имен вручную в эту коллекцию, похоже, не имеет никакого эффекта. Поэтому мой вопрос: как правильно добавить импортированные пространства имен в этот список? Или как получить контекст для обновления, используя мой добавленный вручную импорт пространства имен?
Дополнительная информация к решению ниже :
Чтобы решить эту проблему, я создал желаемый XAML-файл активности «чистого листа», добавил его в свой проект, установил для Действие сборки значение Встроенный ресурс и * 1020. * Пользовательский инструмент для пустой строки.
Затем в коде, который инициализирует мой WorkflowDesigner, я делаю следующее:
_Wd = new WorkflowDesigner();
_Wd.Load(
XamlServices.Load(
ActivityXamlServices.CreateBuilderReader(
new XamlXmlReader(
Assembly.GetEntryAssembly().GetManifestResourceStream( "WpfApplication1.New.xaml" )
)
)
) as ActivityBuilder
);
Теперь в моем рабочем процессе импортированы все желаемые пространства имен.