yotiky Tech Blog

とあるエンジニアの備忘録

.NET Core

ピックアップ記事

2024/4 ~ フリーランスのお仕事募集中 コラム yotiky.hatenablog.com 開発者としての3つの価値観「What-With-How」 ウォーターフォールとアジャイルの例え話 設計 yotiky.hatenablog.com Unity におけるアーキテクチャの予備知識 Unity - 設計・実装のコツ …

xUnit.net - 利用可能なツール

目次 目次 環境 xUnitTestCodeSnippets Chainning Assertion Xunit.SkippableFact XMLUnit 環境 Visual Studio 2022 xunit 2.4.2 xUnitTestCodeSnippets ショートカットテキストを入力して、Tabキーを2回入力するとコードのテンプレートが挿入される。 よく…

C# - XElement / XDocument の使い方

learn.microsoft.com learn.microsoft.com 目次 目次 検証環境 XElement の使い方 読み込み 保存 XDocument の使い方 XMLツリーの構築 検証環境 LINQPad 7 .NET 7.0 XElement の使い方 サンプルで扱う PurchaseOrder.xml。 <PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20"> <Address Type="Shipping"> <Name>Ellen Adams</name></address></purchaseorder>

C# - XmlSerializerの使い方

learn.microsoft.com 適用対象は、.NET Framework 1.1 以降。 目次 目次 検証環境 XmlSerializer の使い方 ファイルの読み書き 文字列の読み書き 属性 XmlRoot / XmlType XmlElement XmlAttribute XmlIgnore XmlEnum XmlText XmlArray / XmlArrayItem 子要素…

LINQPad - 便利機能

目次 目次 検証環境 パス Util Highlight / Highlightif Dif Snapshot HorizontalRun / VerticalRun Pivot Merge Image RawHtml WithStyle HtmlHead InvokeScript DisplayWebPage ToCsvString WriteCsv SyntaxColorText ReadLine AutoScrollResults SaveStri…

LINQPad - Dumpメソッドの拡張

定義 static class DumpExtensions { public static void DumpExH1(this string value) => DumpWrappedWithTags(value, "h1"); public static void DumpExH2(this string value) => DumpWrappedWithTags(value, "h2"); public static void DumpExH3(this str…

LINQPad - 拡張メソッド(My Extensions相当)をファイル分割して管理する

TL;DR My Extensionsファイルに拡張メソッドを実装するとどこからでも使える拡張メソッドを定義できる ファイルのコードが増えても、My Extensions ファイル以外では定義することができない そこで Plugins を利用して、ファイルを分割して拡張メソッドを管…

LINQPad - 出力結果を調整する

目次 目次 Dump description depth toDataGrid exclude / include alpha noTotals repeatHeadersAt includePrivate Util 参考 Dump サンプルデータ。 class Team { private Guid Id { get; set; } = Guid.NewGuid(); public string Name { get; set; } publi…

C# - 相対パスでオブジェクト参照を辿るツリー構造のサンプル

ツリー構造を成すクラスの親クラス。 public abstract class Node { protected const string Slash = "/"; [XmlIgnore] public Node Parent { get; set; } public Node GetReferencedNode(string referencePath) { var path = referencePath; var target = t…

C# - XmlWriter の使い方

learn.microsoft.com 適用対象は、.NET Framework 1.1 以降。 目次 目次 検証環境 XmlWriter の使い方 ファイルに書き込む string に書き込む 基本のキ 文字列をファイルに書き込む 参考 検証環境 LINQPad 7 .NET 7.0 XmlWriter の使い方 ファイルに書き込む…

C# - XmlReader の使い方

learn.microsoft.com 適用対象は、.NET Framework 1.1 以降。 目次 目次 検証環境 XmlReader の使い方 ファイルから読み込む 文字列から読み込む 検証環境 LINQPad 7 .NET 7.0 XmlReader の使い方 基本的な要素の取り扱い。 private void WriteConsole(XmlRe…

LINQPad - 外部ファイル(cs)を参照する

目次 目次 load ディレクティブ クエリを参照する 非参照 csファイルを参照する load ディレクティブ #load ディレクティブを使うと、外部のファイルを参照することができる。 主な利用用途は保存しておいた .linqファイルを参照することだが、.csファイルも…

C# - XMLを扱う

目次 目次 本文 .NETでXMLを扱うためのテクノロジー概要 構造(DOM) XMLの読み書き 操作 シリアライズ/デシリアライズ その他参考 本文 .NETでXMLを扱うためのテクノロジー概要 XML の処理オプション - .NET | Microsoft Learn XML ドキュメントと XML デー…

Unity Unit Test(単体テスト)入門 - 番外編 UniRx

目次 目次 はじめに シリーズの目次 環境 サンプル Moq NSubstitute はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unityのテスト、およびDIコンテナ、モックライブラリの基本的な使い方や…

Unity Unit Test(単体テスト)入門 - NSubstitute

目次 目次 はじめに シリーズの目次 環境 NSubstitute 手順 基本的な使い方 サンプル アプリ側 with Extenject(Zenject) with VContainer 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したも…

Unity Unit Test(単体テスト)入門 - Moq

目次 目次 はじめに シリーズの目次 環境 Moq 手順 基本的な使い方 サンプル アプリ側 with Extenject(Zenject) with VContainer 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unity…

Unity Unit Test(単体テスト)入門 - VContainer

目次 目次 はじめに シリーズの目次 環境 VContainer 手順 テストでの使い方 サンプル アプリ側 テストコード 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unityのテスト、およびDI…

Unity Unit Test(単体テスト)入門 - Extenject(Zenject)

目次 目次 はじめに シリーズの目次 環境 Extenject(Zenject) 手順 テストでの使い方 サンプル アプリ側 テストコード UnitTest IntegrationTest SceneTest 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書…

Unity Unit Test(単体テスト)入門 - Unity Test Framework

目次 目次 はじめに シリーズの目次 環境 Unity Test Framework 手順 参考 補足 MEMO 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unityのテスト、およびDIコンテナ、モックライブ…

Unity Unit Test(単体テスト)入門

目次 目次 はじめに シリーズの目次 環境 単体テスト入門 基本方針 Unity Test Framework 手順 参考 DIコンテナの導入 DIコンテナは インタフェースは Extenject(Zenject) VContainer 比較の参考 モックライブラリ導入 Moq NSubstitute サンプルプロジェクト…

MagicOnion ジェネレーターのエディタ拡張の修正覚書

Unity+.NET Core+MagicOnion v2 の環境構築ハンズオン #C# - Qiita MenuItemのエディタ拡張使わせてもらっていたがエラーが起きてるのしばらく気付かなかったので、p.Exitedの中を微修正。 if (p.ExitCode == 0) UnityEngine.Debug.Log($"{data}"); else Uni…

MagicOnion で Shared Project (共有プロジェクト)を含むプロジェクトをジェネレートする時の注意点

もくじ もくじ 現象 原因 対処 現象 複数のプロジェクトにジェネレート対象のクラスを定義しているが、1度のmocで対象にしたいプロジェクトが1個だけの場合、入力するプロジェクトがShared Projectを参照していると参照していないプロジェクトのコードもジェ…

共有プロジェクト(Shared Project)自体の参照設定

共有プロジェクトの中でライブラリを参照してコードを書きたい場合、通常のプロジェクトならNugetで参照を追加するが共有プロジェクト自体に参照を追加することはできない。 どうするかというと、共有プロジェクトを参照する側のプロジェクトの参照内容が反…

Blazor - サイドメニューをスマホで表示した時のように常にトップバーにハンバーガーメニューで表示する

TL;DR Blazorのテンプレートで作成される画面は、スマホで表示するとトップバーにハンバーガーメニューが表示される PCでも同様の表示になるようにする 目次 TL;DR 目次 検証環境 内容 MainLayout.razor.css NavMenu.razor.css 表示 検証環境 .NET Core 6.0 …

ASP.NET Core と Azure App Service のアップロードのサイズ制限

目次 目次 検証環境 ASP.NET Core App Service ホスト リクエスト本文のサイズ制限 IIS Kestrel マルチパート本文のサイズ制限 おまけ (Azure Functions) 参考 検証環境 APS.NET Core 5.0 Web アプリ(MVC) Azure App Service ASP.NET Core APS.NET Core で…

C# - Path を操作する

目次 目次 検証環境 Path を操作する エスケープと逐語的文字列リテラル セパレーター ディレクトリとファイル 連結と結合 使用できない文字 ファイル名の自動生成 絶対パスと相対パス Path クラス Uri クラス Uri クラス 絶対パス 相対パスを使って対象の絶…

Azure SendGrid を使ってメールを送信する

目次 目次 アカウントの作成 SendGrid のセットアップ API Key の作成 実装 参考 アカウントの作成 無料枠を使いたい場合は、SendGridのサイトからアカウントを作成する必要がある。 2021年1月時点*1で、Azure Marketplace から作ろうとした場合に無料プラン…

SendGrid を使ってメールを送信する (Not Azure)

目次 目次 アカウントの作成 SendGrid のセットアップ API Key の作成 実装 参考 アカウントの作成 無料枠を使いたい場合は、SendGridのサイトからアカウントを作成する必要がある。 2021年1月時点*1で、Azure Marketplace から作ろうとした場合に無料プラン…

C# - ZIP を操作する

目次 目次 検証環境 ZIP を操作する 圧縮する 展開する ZIP 内のファイルを列挙する 一部だけ展開する ファイルを削除する ファイルを追加する 展開せずにテキストファイルの内容を取得する サンプルコード全文 ZipArchive 参考 検証環境 .NET Core 3.1 LINQ…

.NET Core で Shift-JIS エンコードを扱う

目次 目次 検証環境 実装 補足 Encoding.Default UTF-8 参考 検証環境 .NET Core 3.1 System.Text.Encoding.CodePages 5.0.0 実装 NuGet で System.Text.Encoding.CodePages をインストールする。 Encoding.RegisterProvider(CodePagesEncodingProvider.Inst…