に問題がありReuseScope.Request
ます。を指定しても、すべてのリクエストで同じReuseScope.Request
インスタンスが注入されます。MasterConfig を取得するために、次の 2 つの呼び出しを使用してコンテナーを構成しました。
this.container.RegisterAutoWiredAs<ApiConfigFactory, IConfigFactory>().ReusedWithin(ReuseScope.Container);
this.container.Register(c => c.Resolve<IConfigFactory>().GetMasterConfig(true)).ReusedWithin(ReuseScope.Request);
GetMasterConfig(true) メソッドは、新しい具体的な MasterConfig を返します。ただし、サービスで MasterConfig を使用しようとすると、すべてのリクエストで同じインスタンスが取得されます。
public class MyService
{
private readonly MasterConfig masterConfig;
public SaleService(MasterConfig masterConfig)
{
this.masterConfig = masterConfig;
}
public object Post(MyRequest request)
{
// **masterConfig is the same instance here on every request**
}
}
MasterConfig Register のスコープを に変更するとReuseScope.None
、期待どおりに新しい MasterConfig が読み込まれます。私は何が欠けていますか?MasterConfig の登録方法に問題はありますか? ReuseScope.None
が問題を解決するのはなぜですか? ReuseScope.Request
が同じインスタンスを表示するのはなぜですか?
ノート: