ASP.NET Core MVC

外向きの静的 IP アドレスを設定しない状態で、.NET8でHttpRequestを送るための改善を行いたい

前提条件 ASP.NET Core 8 環境 Google CloudのCloud Run等で外向きの静的 IP アドレスを設定しない状態(IPが固定できている場合には問題は起こらない。) 発生する現象 System.Net.NetworkInformation.NetworkInformationException (13): Permission denied…

Swashbuckle.AspNetCore.SwaggerでSwaggerUiのRootPathを変更する

Swashbuckle.AspNetCore.SwaggerでSwaggerUiのRootPathを変更したい 前回のユースケースで、PathBaseを利用してWebApiのRootPathを変更した場合、SwaggerUi自体のRootPathも変更が必要になります。 UseSwaggerUIのSwaggerUiOptionsのRoutePrefixにサブディレ…

Swashbuckle.AspNetCore.Swaggerでswagger.jsonのRootPathを変更する

Swashbuckle.AspNetCore.Swaggerでswagger.jsonのRootPathを変更したい 表題の通りの欲求が発生するケースが、エンドポイントをサブディレクトリで分けて追加していくリアルワールドアプリケーションでは発生することがあります。 サブドメインを切ってくれ…

Property違いの同じ型を複数DI設定してみる。 その1

Propertyの違う、同一Objectを複数DI設定したいだけの人生だった IEnumerableでInjectionする DIでper RequestでInjectionしてほしいクラス public class PiyoService { public string TagName { get; } public PiyoService(string tagName) { TagName = tag…

IAsyncDisposable、パターンマッチだから、別にIAsyncDisposableインターフェースを実装してなくてもいい説、半分正解で半分誤りでした。

以前書いた記事 creatiovitae.hatenadiary.com IAsyncDisposable、パターンマッチだから、別にIAsyncDisposableインターフェースを実装してなくてもいい説、半分正解で半分誤りでした。 結論から言うと、 await using var productService = new ProductServi…

ASP.NET CoreのStartup.csへのインジェクション以外で、appsettings.XXX.jsonファイルにアクセスする。

appsettings.XXX.json(要するにconfigの類)をProgram.csで参照したい 普段ASP.NET Core MVCで開発している場合(ここでいう通常、は)、Startupクラスにはappsettings.jsonとappsettings.{EnvironmentName}.jsonを読み込んだコンフィグがインジェクション 設…

EnvironmentNameをIWebHostEnvironment.EnvironmentNameを使わずに取得してみる

EnvironmentNameをProgram.cs内で参照したい 具体的には、Mainメソッド内で CreateHostBuilder(args).Build().Run(); ってやってるところで、ロギングしたかったり、CreateHostBuilderのところで、そもそもEnvironmentNameに対応したappsettings.XXX.jsonで…

ASP.NET CoreでProgram.csを見たり、Serverヘッダー:Kestrelをオフにしてみる

Program.cs周りのコードを確認してみる。 ASP.NET Core の2.2時代のテンプレートは、WebHost(IWebHostBuilder)が使用されていました。 コードベースはこんな感じ。 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDef…

Microsoft.AspNetCore.Appメタパッケージを利用してライブラリーを作成する際のProject Sdkについて見てみる

Microsoft.AspNetCore.Appメタパッケージを使いたい Webゾーンに関わるライブラリーを書く場合、Microsoft.AspNetCore.Appメタパッケージを参照したくなります。 .NET Coreの.csprojを編集するときに、Project SdkをMicrosoft.NET.Sdk.Webに設定するとDefaul…

IAsyncDisposableを実装したObjectをASP.NET CoreのDIでライフタイム管理するときの挙動を見てみる

Using IAsyncDisposable C#8から追加されたIAsyncDisposable、言わずと知れた await using ~ を実現するための存在ですが、ASP.NET Coreで開発している場合、各Objectのライフタイム管理は、DIContainerに任せることが大半だと思います。 DIContainerにライ…