2017-05-24 6 views
0

別のワークフローを使用しているときにワークフローXAMLを動的にロードする際に問題が発生しました。メインワークフロー内でサブワークフローを使用する

メインワークフロー - MainWorkflow.xaml。別のワークフロー内で持つ - SubWorkflow.xaml を実行時に、私は次のエラーを取得していますMain.xamlをロードする場合:

{"CacheMetadata for activity 'FlowManager.Flows.MainWorkflow' through 'System.Xaml.XamlObjectWriterException: Cannot create unknown type '{clr-namespace:FlowManager.Flows}SubWorkflow' 

ワークフローロードするためのコード:

public object Load(Dictionary<string, object> inputs) 
{ 
    object returnValue = null; 

    ActivityXamlServicesSettings settings = new ActivityXamlServicesSettings 
    { 
     //since the workflow contains expression, the following flag must be set to true 
     CompileExpressions = true 
    }; 


    WorkflowApplication wfApp = 
     new WorkflowApplication(
      ActivityXamlServices.Load(Path, settings), inputs) 
     { 
      Completed = delegate (WorkflowApplicationCompletedEventArgs e) 
      { 
       returnValue = e.Outputs["returnValue"]; 
       syncEvent.Set(); 
      }, 
      Idle = delegate (WorkflowApplicationIdleEventArgs e) { idleEvent.Set(); }      
    }; 

    wfApp.Run(); 
    syncEvent.WaitOne(); 
    return returnValue; 
} 

のロードを変更しますメインのインスタンスを作成することによってではなくXAMLをロードすることによりワークフローは、私はこの問題を解決する方法を完全に

 WorkflowApplication wfApp = 
      new WorkflowApplication(new MainWorkflow(), inputs) 

任意のアイデアを作品?

答えて

0

var xamlReaderSettings = new XamlXmlReaderSettings() 
    { 
     LocalAssembly = typeof(GetVmIp).Assembly 
    }; 
    var reader = new XamlXmlReader(Path, xamlReaderSettings); 


    WorkflowApplication wfApp = 
     new WorkflowApplication(
      ActivityXamlServices.Load(reader, settings), inputs) 

オブジェクトとそれが動作XamlXmlReaderSettingsとアセンブリ参照を追加するために必要な答えを見つけました。

関連する問題