HomeController
はValueObject
を受け取り、状態someValue
はDBで頻繁に変更されます。状態はコンストラクタで取得されます。Simple Injectorでインターフェイスを使用する具体的なオブジェクトを登録するにはどうすればいいですか?
HomeController
にアクセスするたびにどのように私はIHomeController
を使用してコンテナにHomeController
を登録することができますので、新しいValueObject
が作成されただけでなく、それは状態も更新されています。
public class HomeController()
{
public HomeController(ValueObject value)
{
}
}
pubic class ValueObject()
{
public someValues { get; private set; }
public ValueObject(IValueRepository repository)
{
// The someValue changes very often in the system
someValue = repository.GetSomeValues();
}
}
あなたの例を更新してください。コードスニペットには質問の内容が反映されません。 – Nkosi
これには 'IHomeController'は必要ありません。適切なDIコンテナを使用し、 'ValueObject'と' ValueRepository'を生涯 'PerRequest'で登録する必要があります。これは、すべての要求に対してそれらの新しいインスタンスを作成し、それらのメソッドを実行すると、すべての要求に対して新しい状態が得られます。私はHomeControllerをリポジトリに依存させ、リポジトリに 'ValueObject'のオブジェクトを返させることをお勧めします。 –