1

ASP.NET Web フォームでは、 と呼ばれるユーティリティの静的クラスWebConfigSettingsを使用していました。このクラスでは、すべてのアプリ設定を Web.config ファイル (たとえばWebConfigSettings.DebugModeEnabled) から読み取っていました。
MVCでの悪い習慣ですか? 非静的クラスを使用して、依存性注入を使用してコントローラーに注入することをお勧めしますか? はいの場合、コントローラーのどこにプロパティを配置しますか? この投稿で、ベース コントローラーを使用すべきではないことを読みました。

4

2 に答える 2

2

静的クラスの問題は、コントローラーを .NET 構成システムと結合することで、単体での単体テストがより困難になることです。IConfigurationアプリケーション全体で必要なプロパティを含むインターフェイスと、構成ファイルからプロパティの値を読み取るこのインターフェイスの実装を持つことができます。あとは、お気に入りの DI フレームワークを構成して、このインターフェイスの適切な実装をコントローラー コンストラクターに挿入するだけです。単体テストでは、このインターフェイスをモックできます。

于 2012-11-04T13:29:18.177 に答える
-2

これは、MVC で使用するアプローチです。複数のプロパティを持つ静的な AppSettings クラスがあります。これは、Web.config、データベース/キャッシュから読み取られたもの、または計算されたプロパティであるため、非常に柔軟です。

これは、コントローラーの外部で使用できます-おそらくモデルまたはビューで使用できます。

于 2012-11-04T12:49:49.700 に答える