我不想將容器放在擴展列表中。只需獲得你真正需要的擴展,IDatabaseContext在你的情況。較少通常更好。
關於包含依賴注入框架的最佳方法,一種方法是將WorkflowApplication或WorkflowInvoker對象包裝在支持Unity的實用程序類中,並提供所有接口/類型作爲內部WorkflowApplication的擴展。
另一個建議是在活動的CacheMetadata方法中註冊所需的擴展。此方法用於在執行工作流程之前驗證工作流程。
public sealed class SampleActivity : CodeActivity
{
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
// Require the IDatabaseContext extension to be defined in the workflow host
// application. The workflow will fail validation if an extension with this
// interface is not provided.
metadata.RequireExtension<IDatabaseContext>();
}
protected override void Execute(CodeActivityContext context)
{
var dbContext = context.GetExtension<IDatabaseContext>();
}
}
public interface IDatabaseContext
{
}
我看着你提供的線索。但它並不像我這樣回答我的問題。 –