Я сделал что-то вроде следующего, где 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;
}