コンテナーを拡張リストに入れることは控えたいと思います。本当に必要な拡張機能を取得するだけです。あなたの場合はIDatabaseContextです。通常は少ないほど良いです。
依存性注入フレームワークを含めるための最善の方法については、Unity をサポートするユーティリティ クラスで WorkflowApplication または WorkflowInvoker オブジェクトをラップし、内部の WorkflowApplication への拡張機能としてすべてのインターフェイス/タイプを提供することが 1 つの方法です。
もう 1 つの推奨事項は、必要な拡張機能をアクティビティの 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
{
}