この単純なクラスを定義したとしましょう。
public class State
{
public int Id { get; set; }
public string Name { get; set; }
}
次に、50個の名前付きインスタンスを定義、作成、登録します。ユーザーがログオンすると、(たとえば、彼の構成設定から)どの状態から来たのかがわかります。私のコントローラーでは、言うのは簡単でしょう
var userState= ObjectFactory.GetNamedInstance<State>("Idaho");
ただし、次のように、コンストラクターで渡す方がはるかに望ましいです。
public class HomeController : ControllerBase
{
private State _state;
public HomeController(State state)
{
_state = state;
}
}
ただし、これが機能するには、特定のインスタンスを渡す必要があります。これを指定する方法はありますか?
私がちょうど考えたもう一つのこと。50の個別の状態を定義する代わりに、次のように状態のコレクションとして定義できます。
public class StateCollection
{
public List<State> States { get; set; }
}
次に、コンストラクターでStateCollectionを渡します。その後、クライアントはLINQを使用して、適切な状態を選択できます。それは合理的なアプローチですか?コレクションが大きい場合はどうなりますか?