この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 2964|答える: 0

[出典] ASP.NET Core(25)依存関係はLazy lazy lazy initializationを注入します

[リンクをコピー]
掲載地 2023/10/10 21:14:31 | | | |
要件:Core ASP.NET サービスを追加し、コンストラクタを通じてサービスを注入し、実装クラスの初期化を遅延させたい(HTTPコンテキスト要求情報に応じた異なる論理処理)、そして<T>lazy initializationのためにlazyをlazyに使うことを考えてください。

復習:

C#の怠惰がスレッドを安全に保つ方法
https://www.itsvse.com/thread-10621-1-1.html

C# パフォーマンス最適化:レイジーは遅延を伴ってレイジーを初期化します<T>
https://www.itsvse.com/thread-7700-1-1.html
インターフェースに直接注入してください

コンストラクタは直接インターフェースサービスに注入され、コードは以下の通りです:

実行順序は以下の通りです:



以下の実行順が見えます:IA 実装クラス -> HomeController コンソール -> インデックスメソッド

レイジーディレイで初期化する

コントローラコンストラクタがIAをLazyに変更すると<IA>、エラーは次のようになります。

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
このエラーは、怠惰関連サービスに登録していないためで、怠惰<>汎用サービスを登録する必要があります。コードは以下の通りです:

サービス追加:

実行順序は以下の通りです:



実行順が見えます:HomeController console -> Index メソッド -> IA 実装クラス、IAインターフェース遅延初期化呼び出し時にIA実装オブジェクトをインスタンス化します。

(終わり)





先の:CIDR:CIDRの住所説明はある記事で読んでみてください
次に:フロントエンドはIndexedDBのlocalForageパッケージを保存します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com