5

明示的に新規作成したり、サービス ロケーターを使用したりせずに、.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メソッドに渡されるより直接的なソリューションを探す必要がありますか? できれば拡張機能を使い続けたいです。

4

3 に答える 3