ASP.NET Core MVC
前提条件 ASP.NET Core 8 環境 Google CloudのCloud Run等で外向きの静的 IP アドレスを設定しない状態(IPが固定できている場合には問題は起こらない。) 発生する現象 System.Net.NetworkInformation.NetworkInformationException (13): Permission denied…
Swashbuckle.AspNetCore.SwaggerでSwaggerUiのRootPathを変更したい 前回のユースケースで、PathBaseを利用してWebApiのRootPathを変更した場合、SwaggerUi自体のRootPathも変更が必要になります。 UseSwaggerUIのSwaggerUiOptionsのRoutePrefixにサブディレ…
Swashbuckle.AspNetCore.Swaggerでswagger.jsonのRootPathを変更したい 表題の通りの欲求が発生するケースが、エンドポイントをサブディレクトリで分けて追加していくリアルワールドアプリケーションでは発生することがあります。 サブドメインを切ってくれ…
Propertyの違う、同一Objectを複数DI設定したいだけの人生だった IEnumerableでInjectionする DIでper RequestでInjectionしてほしいクラス public class PiyoService { public string TagName { get; } public PiyoService(string tagName) { TagName = tag…
以前書いた記事 creatiovitae.hatenadiary.com IAsyncDisposable、パターンマッチだから、別にIAsyncDisposableインターフェースを実装してなくてもいい説、半分正解で半分誤りでした。 結論から言うと、 await using var productService = new ProductServi…
appsettings.XXX.json(要するにconfigの類)をProgram.csで参照したい 普段ASP.NET Core MVCで開発している場合(ここでいう通常、は)、Startupクラスにはappsettings.jsonとappsettings.{EnvironmentName}.jsonを読み込んだコンフィグがインジェクション 設…
EnvironmentNameをProgram.cs内で参照したい 具体的には、Mainメソッド内で CreateHostBuilder(args).Build().Run(); ってやってるところで、ロギングしたかったり、CreateHostBuilderのところで、そもそもEnvironmentNameに対応したappsettings.XXX.jsonで…
Program.cs周りのコードを確認してみる。 ASP.NET Core の2.2時代のテンプレートは、WebHost(IWebHostBuilder)が使用されていました。 コードベースはこんな感じ。 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDef…
Microsoft.AspNetCore.Appメタパッケージを使いたい Webゾーンに関わるライブラリーを書く場合、Microsoft.AspNetCore.Appメタパッケージを参照したくなります。 .NET Coreの.csprojを編集するときに、Project SdkをMicrosoft.NET.Sdk.Webに設定するとDefaul…
Using IAsyncDisposable C#8から追加されたIAsyncDisposable、言わずと知れた await using ~ を実現するための存在ですが、ASP.NET Coreで開発している場合、各Objectのライフタイム管理は、DIContainerに任せることが大半だと思います。 DIContainerにライ…