2017-10-02 6 views
3

戻るStructureMap 2.6を使用したときに、PullConfigurationFromAppConfigをTRUEに設定すると、コンフィギュレーションからコンフィギュレーションデータをプルできるようになりました。これはビルド構成に応じてインスタンスをオーバーライドできるようにするのに役立ちました。環境固有のStructureMap構成ですか?

最新のバージョンでは、これ以上表示されません。コンフィグレーションファイル、具体的にはweb.config(ビルドコンフィグレーションに基づいて現在変換を行っているところ)を介してカスタムインスタンスを指定するにはどうすればいいですか?これは可能ですか?これをサポートする別のIoCフレームワークがありますか?ありがとう。

答えて

2

XMLサポートは、コンテナを構成する古い方法と考えられているため、ほとんどのDIコンテナから削除されています。 XMLは非常に脆く、コンパイル時の型チェックもないので、それを使用してアプリケーションを構成する価値よりも、しばしばトラブルが発生します。

XMLをサポートしているDIコンテナが見つかったとしても、今後はそれをサポートしていない可能性があります。

しかし、これはもちろん、ユースケースに必要な多くの条件設定を入れることです。たとえば、あなたがする必要がある場合、あなたはより多くの設定ファイルの設定を行う(あるいはあなたのことができます

if (ConfigurationManager.AppSettings["DIConfig"] == "Test") 
{ 
    // load test configuration 
} 
else if (ConfigurationManager.AppSettings["DIConfig"] == "Production") 
{ 
    // load production configuration 
} 

のようなものを

<appSettings> 
    <add key="DIConfig" value="Test" /> 
    <!--<add key="DIConfig" value="Production" />--> 
</appSettings> 

の線に沿って何かを使用して、コンポジションのルート、使用中の可能性独自の設定セクション)を使用して、これよりも細かい設定を行います。

+1

私がやっていることだと思います... https://i.imgflip.com/1wxfqe.jpg –

関連する問題