「.NET Core」の版間の差分
ナビゲーションに移動
検索に移動
108行目: | 108行目: | ||
!引数を渡す | !引数を渡す | ||
|- | |- | ||
− | | | + | |Add{LIFETIME}<{SERVICE}, {IMPLEMENTATION}>() |
− | | | + | |services.AddSingleton<IMyDep, MyDep>(); |
− | | | + | |Y |
− | | | + | |Y |
− | | | + | |N |
|- | |- | ||
− | | | + | |Add{LIFETIME}<{SERVICE}>(sp => new {IMPLEMENTATION}) |
− | | | + | |<pre>services.AddSingleton<IMyDep>(sp => new MyDep()); |
− | | | + | services.AddSingleton<IMyDep>(sp => new MyDep(99));</pre> |
− | | | + | |Y |
− | | | + | |Y |
+ | |Y | ||
|- | |- | ||
| | | | ||
145行目: | 146行目: | ||
|- | |- | ||
|} | |} | ||
− | |||
− | |||
− | |||
====Cannot consume scoped service from singleton==== | ====Cannot consume scoped service from singleton==== |
2021年8月10日 (火) 01:18時点における版
| C Sharp | ASP.NET Core | .NET Core Console | Xamarin |
.NET Core
.NET Core
- 最新の .NET 実装です。オープン ソースで、複数の OS 向けに利用できます。
- .NET Core により、クロスプラットフォーム コンソール アプリケーション、ASP.NET Core Web アプリケーション、およびクラウド サービスをビルドできます。
.NET Standard
- すべての .NET 実装が実装する必要のある基本 API のセットです。
- この API を基本クラス ライブラリ (BCL) と呼びます。
- .NET Standard をターゲットにすることで、どの .NET 実装やどの OS で実行されても、すべての .NET アプリケーションが共有できるライブラリをビルドできます。
.NET API ブラウザ
.NET ソースブラウザ
インストール
ダウンロード
Mac
アンインストールツール
CLIコマンド
SDKコマンド
コマンド | 内容 |
---|---|
dotnet --info | .NET Core 情報の表示 |
パッケージの追加
- dotnet add package Microsoft.Extensions.Configuration.Binder --version 5.0.0
- dotnet add package Microsoft.Extensions.Configuration.CommandLine --version 5.0.0
- dotnet add package Microsoft.Extensions.Configuration.Json --version 5.0.0
- dotnet add package Microsoft.Extensions.DependencyInjection --version 5.0.1
- dotnet add package Microsoft.Extensions.Hosting --version 5.0.0
- dotnet add package Microsoft.Extensions.Options --version 5.0.0
- dotnet add package MongoDB.Driver --version 2.12.4
- dotnet add package Newtonsoft.Json.Bson --version 1.0.2
- dotnet add package Newtonsoft.Json --version 13.0.1
- dotnet add package Microsoft.Extensions.Logging.Log4Net.AspNetCore --version 5.0.3
.gitignoreの作成
- $ dotnet new gitignore
プロジェクトレンプレート
dotnet new
- $ dotnet new web
=ソリューション
- カレントディレクトリにソリューションファイルを作成
- $ dotnet new sln -o .
- カレントディレクトリのソリューションにプロジェクトを追加
- $ dotnet sln add {プロジェクトファイルパス}
- ビルド
- $ dotnet clean
- $ dotnet build
NET での依存関係の挿入
サービスの有効期間
サービス登録メソッド
メソッド | 例 | 自動object破棄 | 複数実装 | 引数を渡す |
---|---|---|---|---|
Add{LIFETIME}<{SERVICE}, {IMPLEMENTATION}>() | services.AddSingleton<IMyDep, MyDep>(); | Y | Y | N |
Add{LIFETIME}<{SERVICE}>(sp => new {IMPLEMENTATION}) |
|
Y | Y | Y |
Cannot consume scoped service from singleton
- 既定では、開発環境で、より長い有効期間を持つ別のサービスからサービスを解決すると、例外がスローされます。
- スコープの検証
- シングルトンからスコープ付きサービスを解決 しない でください。また、たとえば一時的なサービスにより、間接的に解決しないようにご注意ください
exe を出力
デプロイ方法の名称 | 略称 | 実行方法 |
---|---|---|
Framework-dependent deployments | FDD | コマンドで dotnet hoge.dll として実行する |
Self-contained deployments | SCD | 実行ファイルを直接実行する |
日本語コーデック
- NuGet で System.Text.Encoding.CodePages を追加
- 初期化時に 以下を実行
Console
設定ファイル
- dotnet add package Microsoft.Extensions.Configuration.Json --version 5.0.0
- using System;
- using System.IO;
- using Microsoft.Extensions.Configuration;
- namespace docweb_bat
- {
- public class Program
- {
- static void Main(string[] args)
- {
- // export DECWEB_ENV=Development
- var environmentName = Environment.GetEnvironmentVariable("DOCWEB_ENV");
- Console.WriteLine($"Environment:{environmentName}");
- IConfiguration configuration = new ConfigurationBuilder()
- .SetBasePath(Directory.GetCurrentDirectory())
- .AddJsonFile("appsettings.json", true, true)
- .AddJsonFile($"appsettings.{environmentName}.json", true, true)
- .Build();
- IConfigurationSection section = configuration.GetSection("DocumentWebDatabaseSettings");
- string str = section["DocumentWebCollectionName"];
- Console.WriteLine(str);
- }
- }
- }
© 2006 矢木浩人