Для простого прототипа я должен отобразить файл рабочего процесса и показать, на каком этапе мы на самом деле.
Я нашел образец здесь: http://msdn.microsoft.com/en-us/library/ee624139.aspx
Который почтичто мне нужно.
В этом примере все действия никогда не ждут другого действия.Итак, я создал для себя очень глупую активность:
public class WaitForNextCall :NativeActivity
{
public const String WaitBookmark = "WaitingStep";
#region Overrides of NativeActivity
/// <summary>
/// When implemented in a derived class, runs the activity’s execution logic.
/// </summary>
/// <param name="context">The execution context in which the activity executes.</param>
protected override void Execute(NativeActivityContext context)
{
context.CreateBookmark(WaitBookmark);
}
protected override bool CanInduceIdle
{
get
{
return true;
}
}
#endregion
}
, которая, кажется, работает.Так как там я создавал свой рабочий процесс непосредственно в коде:
return new Sequence()
{
Activities =
{
new WaitForNextCall(){DisplayName = "Step one"},
new WaitForNextCall(){DisplayName = "Step Two"},
new WaitForNextCall(){DisplayName = "Step Three"},
new WaitForNextCall(){DisplayName = "Step Four"}
}
};
Единственная проблема с этим заключается в том, что я вижу только элемент "Последовательность" в конструкторе рабочих процессов.
Итак, я создалфайл xaml, который описывает точно то же самое, и я загружаю его так:
return ActivityXamlServices.Load("Workflows/WorkflowSample.xaml") as DynamicActivity;
Но потом я получил это исключение:
System.Xaml.XamlObjectWriterException occurred
Message=Impossible de créer le type inconnu '{clr-MyTestNameSpace.UserInterface.WorkflowItems}WaitForNextCall'.
Source=System.Xaml
LineNumber=0
LinePosition=0
StackTrace:
à System.Xaml.XamlObjectWriter.WriteStartObject(XamlType xamlType)
à System.Xaml.XamlWriter.WriteNode(XamlReader reader)
[...]
Я дважды проверил, файлприсутствует (кажется, что есть другое сообщение об ошибке, когда файл не указан правильно).Но он не может найти мой класс «WaitFornextCall», который используется всего несколькими строками ниже.
Я немного разочарован, я пытаюсь понять, как работает основ Workflow, но сейчас это немного сложно:(
Любой совет будет приветствоваться
Редактировать: я пытался это прочитать файл, у меня нет никаких исключений в моем конструкторе, но я не знаю почему, некоторые библиотеки яЯ использую (ActiPro), кажется, больше не работает после загрузки:
XamlReader reader = new XamlXmlReader("Workflows/WorkflowSample.xaml", new XamlXmlReaderSettings(){LocalAssembly = System.Reflection.Assembly.GetExecutingAssembly()});
return ActivityXamlServices.Load(reader);