asp.net webforms サイトのリクエスト全体で持続する autofac の有効期間に問題があります。
したがって、auto facに工場を登録しています:
builder.RegisterType<DoSomethingFactory>().As<IDoSomethingFactory>().InstancePerLifetimeScope();
もちろん、これは app_start で発生します。
次に、このファクトリのメソッドを呼び出す単純なユーザー コントロールがあります。
IDoSomethingFactory doSomethingFactory = Resolver.Resolve<IDoSomethingFactory>();
Number.Text = doSomethingFactory.DoSomething().ToString();
ページにこのコントロールの 2 つのインスタンスがあるため、DoSomething メソッドを 2 回呼び出し、ファクトリも 2 回解決する必要があります。
サイトを初めて実行すると、DoSomethingFactory のコンストラクターが起動され、その後 DoSomething メソッドが 2 回呼び出されます。2 番目の要求では、ファクトリを新たに作成することなく、DoSomething メソッドを 2 回呼び出すことになります。
登録時に InstancePerLifetimeScope を取り出すと、解決ごとにファクトリがインスタンス化されます。MVC サイトに関するこのトークで私が見たほとんどの回答。私はMVCサイトも持っており、同じ方法で使用しており、要求どおりに機能しているため、asp.net Webフォームについて質問する必要があります
明確にするために、リクエストごとにファクトリをインスタンス化したいと思います。どんな助けやアイデアも大歓迎です。
どうもありがとう
意思