2011-07-24 10 views
0

コンソールアプリケーションでワークフローをホストする方法はありますか?私は十分にグーグルグーグルであり、良いサンプルが見つかりませんでした。.NET 4のコンソールアプリケーションでワークフローをホストする

+0

私はそこにサンプルが存在しなければならないと確信している.... –

+0

ため息。ワークフローコンソールアプリケーション*の*テンプレートは100%完成です。ワークフローにアクティビティを追加するだけです。 – Will

答えて

3

ほとんどの基本的な例がコンソールアプリケーションを使用して実行されているので、例は見つけられません。たとえば、これです。

ワークフローのランタイムはホストの種類に依存しないため、コンソールアプリケーションではうまく動作するか、ASP.NETまたはWPFアプリケーションでも同じように機能します。

var workflow = new Workflow1(); 
workflow.FirstName = "Maurice"; 
workflow.LastName = "de Beijer"; 

var result = WorkflowInvoker.Invoke(workflow); 
Console.WriteLine(result["Greeting"]); 
+0

私はWFを初めて使い、上記のコードスニペットではワークフローを呼び出すか、ワークフローをホストするのか疑問に思っていますか?私はワークフローをコンソールアプリケーションのような別のプロセスでホストし、別のコンソールアプリケーション(クライアント)からワークフローを呼び出すようにします。 – VJAI

+1

ワークフローサービスを使用し、WCFを介してワークフローサービスとやりとりしたいと思っていますか?その場合は、WorkflowServiceHostを使用してワークフローにReceiveアクティビティを追加して、WCFメッセージを受信します。 – Maurice

+0

ありがとうMaurice。 WorkflowServiceは私が必要とするものです。 – VJAI

0

私は「FeedManager」はコンソールアプリ、ProcessAllImportsとProcessAllExportFeedsは、コードまたはXAML活動しているここで、以下のようなものを行っています。シンプルだがうまくいく。このことができます 希望...

class FeedManager 
{ 
    static void Main(string[] args) 
    { 
     FeedManager fm = new FeedManager(); 
     fm.Run(args); 
    } 

    private int Run(string[] args) 
    { 
     ProcessAllImports importProcess = new ProcessAllImports(); 
     List<Feed> importFeedSuccesses = new List<Feed>(); 
     List<Feed> importFeedsFailure = new List<Feed>(); 

     ProcessAllExportFeeds exportProcess = new ProcessAllExportFeeds(); 
     List<Feed> exportFeedSuccesses = new List<Feed>(); 
     List<Feed> exportFeedsFailure = new List<Feed>(); 

     try 
     { 
      IDictionary<string, object> importFeedsArgs = new Dictionary<string, object> 
      { 
       { "FeedsSuccess", importFeedSuccesses }, 
       { "FeedsFailure", importFeedsFailure }, 
      }; 
      var importOutput = WorkflowInvoker.Invoke(importProcess, importFeedsArgs); 
      bool importSuccess = (bool)importOutput["Success"]; 
      importFeedSuccesses = (List<Feed>)importOutput["FeedsSuccess"]; 
      importFeedsFailure = (List<Feed>)importOutput["FeedsFailure"]; 

      IDictionary<string, object> exportFeedsArgs = new Dictionary<string, object> 
      { 
       { "FeedsSuccess", exportFeedSuccesses }, 
       { "FeedsFailure", exportFeedsFailure }, 
      }; 
      var exportOutput = WorkflowInvoker.Invoke(exportProcess, exportFeedsArgs); 
      bool exportSuccess = (bool)exportOutput["Success"]; 
      exportFeedSuccesses = (List<Feed>)exportOutput["FeedsSuccess"]; 
      exportFeedsFailure = (List<Feed>)exportOutput["FeedsFailure"]; 

     } 
     catch (Exception e) 
     { 
      return -1; 
     }