私はWebアプリケーションをビルドしています。私は依存関係注入のためにAutoFacを使用しています。クエリ文字列のパラメータをAutofacのコンポーネント登録に渡すにはどうすればよいですか?
このプロジェクトでは、Entity FrameworkのDbContextの依存関係を解決する際に、カスタムパラメータを渡す必要があります。接続文字列は動的であり、このパラメータに応じて変更できるためです。
このパラメータは、(別のアプリケーションの)クエリ文字列に由来します。私は何とかそれを傍受する必要があります、インジェクターの初期化の前にこの値を取るが、インジェクターの初期化はApplication_Start()メソッドにあるので、これを行うための最良の方法はわかりません。だから、
、私は次のコードを持っている:コンテナは、それはAutoFacドクであるだけのようApplication_Start()
でAutofacInitializeを呼び出して、デフォルトContainerBuilder
そしてある
//Entity Framework DbContext
public class MyContext : DbContext
{
public MyContext(int portalCode){...}
}
//AutoFac registering:
container.Register<MyContext>(c => new MyContext(how to pass the parameter here ??)).InstancePerRequest();
を。
どのように私はAutofacの依存関係解決者の間にそれを達成できますか?パラメータ値のための変数で
は、クエリ文字列は、* *ランタイムデータです。ランタイムデータを使用してアプリケーションコンポーネントを構築すべきではありません。どうしてあなたのアプリケーションを設計するのかを説明する[この記事](https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=99)をご覧ください。 – Steven