Я получаю следующее исключение при вызове моего рабочего процесса (динамически):
При обработке дерева рабочего процесса возникли следующие ошибки:
«DynamicActivity»: частная реализация действия «1: DynamicActivity» имеет следующую ошибку проверки: Ошибка (и) компилятора при обработке выражения «TryCast (simplerule_out, OutputBase2)».
Тип «OutputBase2» не определен.
'DynamicActivity': частная реализация действия '1: DynamicActivity' имеет следующую ошибку проверки: Ошибка (и) компилятора при обработке выражения «Res».
Тип «OutputBase2» не определен.
'DynamicActivity': частная реализация действия '1: DynamicActivity' имеет следующую ошибку проверки: Ошибка (и) компилятора при обработке выражения «Res».
Тип «OutputBase2» не определен.
'DynamicActivity': частная реализация действия '1: DynamicActivity' имеет следующую ошибку проверки: Ошибка (и) компилятора при обработке выражения «Новый список (Of OutputBase2)».
Тип «OutputBase2» не определен.
Рабочий процесс очень прост и отлично работает на VS 2010 beta 2!
Все, что я пытаюсь сделать, - это создать новый список моего абстрактного пользовательского типа "OutputBase2".
public class OutputBase2
{
public OutputBase2() { }
public bool Succeeded { get; set; }
}
class Example
{
public void Exec()
{
ActivityBuilder builder = new ActivityBuilder();
builder.Name = "act1";
var res = new DynamicActivityProperty { Name = "Res", Type = typeof(OutArgument<List<OutputBase2>>), Value = new OutArgument<List<OutputBase2>>() };
builder.Properties.Add(res);
builder.Implementation = new Sequence();
((Sequence)builder.Implementation).Activities.Add(new Assign<List<OutputBase2>> { To = new VisualBasicReference<List<OutputBase2>> { ExpressionText = res.Name }, Value = new VisualBasicValue<List<OutputBase2>>("New List(Of OutputBase2)") });
Activity act = getActivity(builder);
var res2 = WorkflowInvoker.Invoke(act);
}
string getXamlStringFromActivityBuilder(ActivityBuilder activityBuilder)
{
string xamlString;
StringBuilder stringBuilder = new StringBuilder();
System.IO.StringWriter stringWriter = new System.IO.StringWriter(stringBuilder);
System.Xaml.XamlSchemaContext xamlSchemaContext = new System.Xaml.XamlSchemaContext();
System.Xaml.XamlXmlWriter xamlXmlWriter = new System.Xaml.XamlXmlWriter(stringWriter, xamlSchemaContext);
System.Xaml.XamlWriter xamlWriter = System.Activities.XamlIntegration.ActivityXamlServices.CreateBuilderWriter(xamlXmlWriter);
System.Xaml.XamlServices.Save(xamlWriter, activityBuilder);
xamlString = stringBuilder.ToString();
return xamlString;
}
public Activity getActivity(ActivityBuilder t)
{
string xamlString = getXamlStringFromActivityBuilder(t);
System.IO.StringReader stringReader = new System.IO.StringReader(xamlString);
Activity activity = System.Activities.XamlIntegration.ActivityXamlServices.Load(stringReader);
return activity;
}
}
Спасибо!