category: .NET  1/1

ASP.NET CoreでAPIテスト (統合テスト) を行う

またASP.NET Coreネタ。今度はASP.NET Coreの自動テストで、APIレベルのテスト (統合テスト, Integration tests) を行う方法について。バージョンは引き続き2.1。統合テストの方法については、公式ドキュメントにも以下のように説明がある。ASP.NET Core MVC アプリのテストASP.NET Core での統合テストが、いろいろ説明が冗長だったり、かと思えば足りなかったりと、最初にこれだけ見ても正直分かり辛い。なので、実際に統合テス...

Serilogでログを種類ごとに別のファイルに出力する

ASP.NET Coreネタ。ASP.NET Coreでは標準のロガーがあるが、そのままだとファイル出力ができないらしく、別途ライブラリを組み合わせるのが定番らしい(?)。で、有名どころの「Serilog」を使ったのだが、ログを種類別に違うファイルに出力しようとしたら、ちょっと手間取ったので方法を書いておく。例によってStack Overflow等を参考にした。Stack Overflow - Filter Serilog logs to different sinks depending on context sour...

ASP.NET CoreでDIを半自動化する「Scrutor」

引き続きASP.NET Coreネタ。ASP.NET Coreは標準でDIに対応しているのだが、標準のモノは何故か手動での依存関係登録が必須という面倒くさい仕組みになっている。が、これを半分自動化して、クラス名やらのルールに基づいて一括制御できる「Scrutor」というライブラリがあったので、それを紹介する。(実は公式ドキュメントの端っこでも少し紹介されてはいるのだが、自分は最初全然見つけられなかったので。)まず、見つけた中で一...

ASP.NET Core IdentityテーブルのIndex column size too largeの対処

ASP.NET Coreネタ二個目。ASP.NET Core標準のユーザー認証(?)のASP.NET Core Identityは、勝手にユーザーテーブルとか作ってくれるわけだが、ちょっと古いMySQLのutf8mb4データベースだと、自動生成されるテーブル定義が有名な「Index column size too large. The maximum column size is 767 bytes.」に引っかかってしまってマイグレーションエラーになる。一応解説すると、この問題はMySQL (InnoDB) のインデックスが貼れる列...

ASP.NET CoreでHttpRequest/HttpResponseのBodyを参照する

ここ最近、他所のプロジェクトのヘルプでASP.NET Coreを触ってたのだけど、何点かハマったところがあって、かつ日本語の情報が無い(?)のもあったのでそういうのメモっとく。なおバージョンは2.1。初めはコンテンツボディの取得法について。例えば詳細なアクセスログでリクエスト/レスポンスのボディまで出力したい、ってことはちょくちょくあると思う。で、今回もそれやろうとしたのだけれど、デフォルトでは(たぶん性能対策...

StyleCopのインストール

Visual C# 2010 Expressをインストールして、改めてコーディングスタイルをチェックするStyleCopも入れなおしたところ、以前いろいろやったことをすっかり忘れていたので改めてメモ。まずインストールから。インストールは色々探し回った末、最終的に全てこちらのやり方を参考にさせていただいた。タイトルは未定 - StyleCopを使ってみるタイトルは未定 - StyleCopの日本語化(成功)いつの間にか日本語化までされていたので、あわ...

.netのプロキシ接続

要望があったので、久しぶりにこれのソースを引っ掻き回してみる。Wikipediaから記事を取ってくるところは、(当時はあまり意識していなかったけど) .NET Framework の System.Net.HttpWebRequest を使って行っていた。で、ちょっとクラス名とプロキシでぐぐったところ、↓なページが見つかった。どうも簡単にプロキシ接続に切り替えられるらしい。・DOBON.NET プログラミング道 - プロキシサーバーを指定してダウンロードするなの...