Рабочий процесс 4.0 и System.Attribute - PullRequest
2 голосов
/ 20 мая 2011

рабочие процессы, похоже, созданы прямо из Xaml.Как тогда можно было бы включить System.Attribute в мои классы рабочего процесса?

Единственное, о чем я могу думать, это немного дерьмо:

Иметь соответствующий файл кода для каждый Activity.xaml:

[MyCustomAttribute("hello")]
public abstract class MyPointlessWorkflowBase : System.Activity
{

}

А потом мой .xaml наследуется от базы (я даже не знаю, возможно ли это)?Но это отстой, так как мне нужен дополнительный класс для каждого рабочего процесса, для которого требуется атрибут.

есть ли способ кодировать действия, как если бы они были обычными классами, прежде чем вы добавите .xaml к нему?

1 Ответ

3 голосов
/ 20 мая 2011

Файл XAML создает класс с частичным ключевым словом до его компиляции, поэтому вы можете создать частичный класс с тем же именем и добавить туда атрибут.

[MyCustomAttribute("hello")]
public partial class MyWorkflow : Activity
{
}

В качестве альтернативы вы можете добавить атрибут в XAML, используя элемент x: ClassAttributes, и добавить их таким образом.

<p:Activity x:Class="WorkflowConsoleApplication1.MyWorkflow"
            xmlns:s="clr-namespace:System;assembly=mscorlib"
            xmlns:my="......"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <x:ClassAttributes>
      <my:MyCustomAttribute>
        <x:Arguments>
          <s:String>hello</s:String>
        </x:Arguments>
      </my:MyCustomAttribute>
    </x:ClassAttributes>
</p:Activity>
...