의이 내가 처음 XAML
에 ActivityBuilder
객체를 직렬화하는 것입니다 실행 알이ActivityBuilder를 직렬화하지 않고 실행하는 방법은 무엇입니까?
ActivityBuilder<int> ab = new ActivityBuilder<int>();
ab.Name = "Add";
ab.Properties.Add(new DynamicActivityProperty {Name = "Operand1", Type = typeof (InArgument<int>)});
ab.Properties.Add(new DynamicActivityProperty {Name = "Operand2", Type = typeof (InArgument<int>)});
ab.Implementation = new Sequence
{
Activities =
{
new WriteLine
{
Text =
new VisualBasicValue<string>(
"Operand1.ToString() + \" + \" + Operand2.ToString()")
}
}
};
하나의 방법처럼 progrmatically 만든 워크 플로우 있다고 가정 해 봅시다. 그런 다음 ActivityXamlServices
을 사용하여 직렬화 된 XAML
을로드하십시오. 매개 변수에 대한 사전을 만듭니다. WorkflowInvoker
또는 WorkflowApplication
작업 작성자를 XAML로 변환/serialize 할 필요없이이 워크 플로를 실행할 수있는 방법이 있습니까?
WorkflowApplication 및 WorkflowInvoker는 활동을 입력으로 사용하여 실행합니다. 어떻게 든 activityBuilder.Implementation
을 WorkflowApplication
또는 WorkflowInvoker
과 직접 사용할 수 있습니까?
왜 내가 이것을 원하니? 우리는 사용자가 워크 플로를 만들고 실행하는 데 사용하는 워크 플로 디자이너가 있기 때문입니다. 또한 사용자는 프로그래밍 방식으로 워크 플로를 만듭니다. 워크 플로 크기는 최대 80MB까지 가능합니다. 이것은 XAML
사이의 80MB 파일의 직렬화 및 비 직렬화로 인해 응용 프로그램의 메모리를 손상시킵니다. 어떻게 든이 단계를 건너 뛰고 직접 활동을 실행하고 싶습니다.
의미가 있습니까?
는 ActivityBuilder를 사용합니다. 나는 당신이 rehosted 버전을 ysing하고 있다고 생각한다; 나는 그것을 시도한 적이 없지만 ActivityBuilder 대신 DynamicActivity를 사용하도록 강제 할 수는 없습니까? 빈 DynamicActivity를 Designer.Text에 직렬화하면됩니다. – Joao
런타임에 ActivityBuilder를 DynamicActivity로 변환하는 또 다른 방법이 있습니다. 단지 몇 줄의 코드 일 뿐이므로 WorkflowInvoker/WorkflowApplication에서 일반적으로하는 것처럼 DynamicActivity를 실행할 수 있습니다. – Joao
어떤 코드를 가리키게 할 수 있습니까? 찾을 수 없습니다. –