0
我有一個數據處理應用程序,它有幾個工作流程提取數據並生成報告。
工作流程採用數據提取器和報告服務的列表。
要運行的工作流程在運行時確定。有沒有更好的方法來完成這個Structure Map配置?
我已使用結構圖,用於在所述工作流創建給定的工作流程鍵將產生的工作流程的實例。我對結構圖很陌生,在這裏我需要首先進行配置。
這是否看起來是正確的或有我錯過了什麼?有沒有更好的方法來配置這個?
這裏是註冊表類:
class WorkflowRegistry : Registry
{
public WorkflowRegistry()
{
var container = new Container(x =>
{
x.For<DossierExtraction.Library.Interfaces.IProgressReporter>().Use<ProgressReporter>();
x.For<IDossierService>().Use<DossierService>();
x.For<IReportingService>().Use<VendorReportingService>().Named("VendorReport");
x.For<IReportingService>().Use<ClientReportingService>().Named("ClientReport");
});
For<IWorkflow>().Add(x => new GenericWorkflow(
new List<IExtractionService>() { container.GetInstance<DossierExtractor>(), container.GetInstance<NativeExtractor>(), container.GetInstance<TranslationExtractor>() },
container.GetInstance<IReportingService>("VendorReport")
)).Named("VendorWorkflow");
For<IWorkflow>().Add(x => new GenericWorkflow(
new List<IExtractionService>() { container.GetInstance<TranslationExtractor>() },
container.GetInstance<IReportingService>("ClientReport")
)).Named("Clientflow");
}
}
下面是該註冊表類的在我的應用程序使用的一個片段。
ObjectFactory.Initialize(x =>
{
x.AddRegistry<WorkflowRegistry>();
});
var workflow = ObjectFactory.GetNamedInstance<IWorkflow>(workflowKey);
workflow.Run();