.NET Core 構成ファイルのロードと構成データの DI インジェクション
.NET Core 設定ファイル
以前は、.NET の設定ファイルは App.config/Web.config などの XML 形式でしたが、.NET Core では、JSON 形式の設定ファイルを使用することが推奨されています。より使いやすく、より柔軟で、.NET Core の DI を使用して構成データを挿入できます。
使用:
var config = new ConfigurationBuilder() .AddInMemoryCollection() //将配置文件的数据加载到内存中 .SetBasePath(Directory.GetCurrentDirectory()) //指定配置文件所在的目录 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) //指定加载的配置文件 .Build(); //编译成对象 Console.WriteLine(config["test"]); //获取配置中的数据 config["test"] = "test test"; //修改配置对象的数据,配置对象的数据是可以被修改的 Console.WriteLine(config["test11"]); //获取配置文件中不存在数据也是不会报错的 Console.WriteLine(config["theKey:nextKey"]); //获取:theKey -> nextKey 的值
構成ファイル appsettings.json ファイルの内容:
{ "test": "testVal", "theKey": { "nextKey": "keyVal" } }
注:
ConfigurationBuilder はパッケージ「Microsoft.Extensions.Configuration」を追加する必要があります
AddJsonFile はパッケージ「Microsoft.Extensions. Configuration.Json"
DI で使用
var sp = new ServiceCollection() .AddOptions() //注入IOptions<T>,这样就可以在DI容器中获取IOptions<T>了 .Configure<TestCls>(config.GetSection("TestCls")) //注入配置数据 //也可以对注入的配置数据进行修改 .Configure<TestCls>(t => { t.Name = "Jame"; //修改Name的值 }) .BuildServiceProvider(); //编译 var test = sp.GetService<IOptions<TestCls>>(); //获取注入的配置数据对象 Console.WriteLine(JsonConvert.SerializeObject(test.Value)); //{"Name":"Jame","Age":123} //下面的代码中检验Configure注入的配置数据对象是单例模式的(.NET Core中DI容器的三种生命周期:Singleton(单例), Scoped(作用域), Transient(瞬态)) var test1 = sp.GetService<IOptions<TestCls>>(); Console.WriteLine(test == test1); //true //创建一个新的作用域获取配置数据对象 var test2 = sp.GetService<IServiceScopeFactory>().CreateScope().ServiceProvider.GetService<IOptions<TestCls>>(); Console.WriteLine(test == test2); //true
構成テスト クラス:
public class TestCls { public string Name { get; set; } public int Age { get; set; } }
appsettings.json の内容:
{ "TestCls": { "Name": "Tom", "Age": 123 } }
注:
ServiceCollection はパッケージを追加する必要があります: "Microsoft.Extensions.DependencyInjection"
AddOptions はパッケージを追加する必要があります: "Microsoft.Extensions.Options.ConfigurationExtensions"
ASP.NET Core で使用されます
Startup.cs -> 構成ファイルは、スタートアップ構築メソッド:
var builder = new ConfigurationBuilder() .AddInMemoryCollection() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); Configuration = builder.Build();
Startup で初期化されます。 cs ->ConfigureServices メソッド 構成データの挿入:
services.AddOptions() //注入IOptions<T> .Configure<TestCls>(Configuration.GetSection(nameof(TestCls))) .Configure<TestCls>(test => { test.Name = "Jame"; //修改Name的值 });
構成ファイル内の構成データ:
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Debug", "System": "Information", "Microsoft": "Information" } }, "TestCls": { "Name": "Tom", "Age": 123 } }
コントローラーへの挿入:
[Route("api/[controller]")] public class ValuesController : Controller { IOptions<TestCls> _test; public ValuesController(IOptions<TestCls> test) { _test = test; } [HttpGet] public string Gets() { return JsonConvert.SerializeObject(_test.Value); }
アクセス: /api/values
表示: {"Name":"Jame", "年齢":123 }
【関連する推奨事項】
2. 3. .Net Core .net MVC でフォーム検証を使用するサンプルコードを共有します .net core で http リクエストを行う方法は? CentOS 上で ZKEACMS を実行するチュートリアルの例
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Microsoft の Windows 11 2022 Update (22H2) では、CoreIsolation のメモリ整合性保護がデフォルトで有効になっています。ただし、Windows 11 2022 Update (22H1) などの古いバージョンのオペレーティング システムを実行している場合は、この機能を手動で有効にする必要があります。 Windows 11 で CoreIsolation のメモリ整合性機能をオンにする Core Isolation について知らないユーザーのために説明すると、これは Windows 上の基本的なコア アクティビティをメモリ内で隔離することで悪意のあるプログラムから保護するように設計されたセキュリティ プロセスです。このプロセスとメモリ整合性機能を組み合わせることで、

コンピュータでは、コアには 2 つの意味があります: 1. コア (コアとも呼ばれる) は、CPU の最も重要なコンポーネントです。CPU のすべての計算、ストレージ コマンドの受け入れ、データの処理はコアによって実行されます。2. コア、 core は Intel のプロセッサ名で、Core は Intel が Pentium プロセッサに続いて立ち上げたプロセッサ ブランドで、現在は第 12 世代 Core プロセッサがリリースされています。

現在、人工知能(AI)技術の開発は本格化しており、さまざまな分野で大きな可能性と影響力を発揮しています。本日、Dayao は、参考にしていただけるよう、4 つの .NET オープン ソース AI モデル LLM 関連プロジェクト フレームワークを共有します。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel は、OpenAI、Azure などの大規模言語モデル (LLM) を統合するように設計されたオープン ソース ソフトウェア開発キット (SDK) です。
![Windows 11/10でプロセッサーのサーマルトリップエラーを修正する方法[修正]](https://img.php.cn/upload/article/000/000/164/168169038621890.png?x-oss-process=image/resize,m_fill,h_207,w_330)
ラップトップやデスクトップなどのデバイスのほとんどは、若いゲーマーやプログラマーによって長年にわたって頻繁に使用されてきました。アプリケーションの過負荷により、システムがハングすることがあります。これにより、ユーザーはシステムを強制的にシャットダウンする必要があります。これは主に、重いゲームをインストールしてプレイするプレイヤーに発生します。強制シャットダウン後にシステムが起動しようとすると、以下に示すような黒い画面でエラーがスローされます。 以下は、この起動中に検出された警告です。これらは、イベント ログ ページの設定で表示できます。警告: プロセッサーの温度トリップ。何かキーを押すと続行します。 ..これらのタイプの警告メッセージは、デスクトップまたはラップトップのプロセッサ温度がしきい値温度を超えると常にスローされます。 Windows システムでこの問題が発生する理由を以下に示します。重いアプリケーションがたくさんあります

.NET 開発者は、高品質のソフトウェアを提供するために機能とパフォーマンスを最適化することの重要性を認識する必要があります。提供されたリソースを巧みに活用し、Web サイトの読み込み時間を短縮することで、ユーザーに快適なエクスペリエンスを提供するだけでなく、インフラストラクチャのコストも削減できます。

.NETCore のリリースにより、.NET 開発者は、複数のオペレーティング システム上で .NET アプリケーションを簡単に作成して実行できる新たな機会が得られます。この記事では、.NETCore を使用してクロスプラットフォーム アプリケーション開発を実現する方法について詳しく説明し、Windows、Linux、macOS などのオペレーティング システムでのベスト プラクティスの経験を共有します。 1. 開発環境を準備する クロスプラットフォームのアプリケーション開発を開始するには、まずターゲット プラットフォームごとに開発環境を準備する必要があります。 Windows Windows では、Visual Studio を通じて .NETCoreSDK をインストールできます。インストールが完了したら、Visual Studio を通じて .NETCore プロジェクトを作成して実行できます。李

同時実行性の高いリクエスト処理の点では、.NETASP.NETCoreWebAPI は JavaSpringMVC よりも優れたパフォーマンスを発揮します。その理由としては、AOT の早期コンパイルにより起動時間が短縮され、開発者がオブジェクト メモリの割り当てと解放を行うため、より洗練されたメモリ管理が行われます。
