C#: HttpClientを使った様々なPOST送信サンプル
概要 HttpClientを使用して、テキスト、JSON、画像、マルチパートのコンテンツをHTTPで送信するサンプルを紹介します。 使用環境は次の通りです。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17.6.0) 言語 C#(10.0) + .NET6 サンプル サンプルはgithubで公開しています。 ASP […]
概要 HttpClientを使用して、テキスト、JSON、画像、マルチパートのコンテンツをHTTPで送信するサンプルを紹介します。 使用環境は次の通りです。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17.6.0) 言語 C#(10.0) + .NET6 サンプル サンプルはgithubで公開しています。 ASP […]
概要 外部のREST APIとの疎通でトラブルに見舞われる場合があります。このようなケースでは、REST APIとのHTTP通信の内容を把握し、問題を切り分けする必要があります。 ここでは、HttpClientのHTTP要求・応答を文字列としてダンプするサンプルを紹介します。 サンプルコードはgithubで公開しています。(サンプルの主要コードはHttpDebugUtilsです。) 使用環境は次の […]
概要 値として改行や引用符を含むCSVファイルを解析するサンプルです。 CSVファイルへの出力は比較的簡単に実現できますが、読み取り・解析の難易度は高くなるので、その参考です。 業務要件やその変化に応じて柔軟に仕様を変更したい場合や、セキュリティ上の理由でサードパーティーのパッケージの利用が難しい、等を想定しています。 使用環境は次の通りです。 OS Windows 10(64ビット) IDE M […]
概要 xUnitを使った単体テストでは、実行結果(値)が期待値と一致しているかをAssert.Equal()で検証し、検証に失敗した場合は実行結果と期待値の相違個所が出力されます。検証対象によっては、相違個所のみだと原因個所が分かりづらい場合があるので、相違個所のみではなく全体の出力や出力内容そのものをカスタマイズしてみます。 [crayon-673f085304b03110103372/] 使用 […]
概要 xUnit等でデータベース(EFCore)を使ったテストケースを作成する際、エンティティやテーブル定義に基づいてテストデータを作成したい場合があります。そのようなユースケースをサポートするためのサンプルを紹介します。 使用環境は次の通りです。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17.6.0) 言語 […]
ダイジェスト C#では、既存クラスに独自メソッドを追加する方法として、partialクラス(部分クラス)を使用する方法と、拡張メソッドを使用する方法があります。ここでは両者の特徴・用途や違いについて説明します。 partialクラスに類似するものとして「partialメソッド(部分メソッド)」がありますが、用途が異なるのでここでは割愛します。 観点 partialクラスのメソッド 拡張メソッド 特 […]
想定する処理要件 選択値に応じて異なる値を表示する画面、出力項目のカスタマイズが可能なCSVファイル生成機能、等の業務機能を想定しています。 このような機能では、DB等のデータストアから取得したデータをエンティティに格納し、特定のプロパティの値に応じて別のプロパティの値を取得するような設計・実装を行う場合があります。 ここでは、このような特定のプロパティ値に基づいて別のプロパティ値を取得する方式を […]
はじめに Visual Studio 2022にはアプリケーションの問題を診断するためのプロファイリングツールが付属しています。ここでは、プロファイリングツールに含まれるメモリ使用量を調査するためのツールを紹介します。 使用環境は次の通りです。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17.6.0) 言語 C# […]
UTF8/UTF-16/UTF-32等のUnicode系の符号化でBOMを使用することができますが、ここでは主にUTF-8を前提としたBOM処理について説明します。 ダイジェスト UTF-8ファイル(BOMあり/なし)に対して正常に処理できるクラス・メソッドの例を次に示します。 処理 処理対象のUTF-8ファイル BOMなし BOMあり ファイル読取り File.ReadAllText()Stre […]
概要 鍵導出関数であるPBKDF2を使って、「パスワードからAES-256等で使用可能なキー(256ビット)」(パスワードハッシュとしても使用可)を生成するサンプルを紹介します。 完全なサンプルコードはgithubで公開しています。 次の実行環境を使用しています。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17. […]