明示的に新規作成したり、サービス ロケーターを使用したりせずに、.Net 拡張メソッドで依存関係を使用するためのクリーンなパターンを探しています。
public static class HttpContextExtensions
{
public static SomeClass ExtensionMethod(this HttpContext context)
{
//looking to avoid this
var dependency = ServiceLocator.GetService<DependencyType>();
return dependency.DoSomething(context);
}
}
ここで間違ったツリーを吠えていますか? context
メソッドに渡されるより直接的なソリューションを探す必要がありますか? できれば拡張機能を使い続けたいです。