yotiky Tech Blog

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

2023-01-01から1年間の記事一覧

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…

XML のサンプル「PurchaseOrder.xml」

引用元 learn.microsoft.com PurchaseOrder.xml <PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20"> <Address Type="Shipping"> <Name>Ellen Adams</Name> <Street>123 Maple Street</Street> <City>Mill Valley</City> <State>CA</State> <Zip>10999</Zip> <Country>USA</Country> <…</address></purchaseorder>

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…

Visual Studio - 拡張機能「File Differ」で差分表示する

目次 目次 概要 インストール 機能 ソリューションエクスプローラー コードエディター 概要 Visual Studio の拡張機能「File Differ」。 Visual Studio でちょっとした差分を手軽に取れるので便利。 作者は、Visual Studio teamの中の人っぽい。 marketplace…

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

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

C# - XMLを扱う

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

Unity - UnityWebRequest で「A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.」の例外が発生する時の対処

目次 目次 環境 起こった事象 調査 原因 対処 環境 Unity 2021.3.29f1 起こった事象 LogをApplication Insightsに投げるアプリケーションで、 シーンを切り替えた時にたまに、UploadHandlerRawのコンストラクタで以下の例外が発生する。 A Native Collection…

HoloLens2 でSceneSystemのLighting Sceneを使うとライトが有効にならないバグ

目次 目次 環境 内容 現象 原因 対処法 蛇足 環境 HoloLens2 MRTK 2.8.3 Unity 2021.3.29f1 内容 現象 MRTKのSceneSystemで、Lighting Sceneを使うように設定すると、Unity Editorでは問題なく動くが、HoloLensで動かすとライトが有効にならない。 github.co…

ウォーターフォールとアジャイルの例え話

プロジェクトの計画は、東京から大阪までヒッチハイクの計画を立てるようなもの。 ウォーターフォール 見積もりと進め方 東京大阪間のいくつかの都市にいつまでに着くか見積り、進捗を計り、遅れれば何とかして計画に合わせようとする。 ゴール 台風が来よう…

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 サンプルプロジェクト…

HoloLens2 でアプリパッケージの作成ができないバグ

目次 目次 環境 内容 現象 原因 対処法1 対処法2 環境 HoloLens2 MRTK 2.8.3 Unity 2021.3.28f1 / 29f1 内容 現象 Unity ビルド後のVisual Studioで「アプリパッケージの作成」メニューが無効化されて実行できない。 ※Unity フォーラムのスレッド forum.unit…

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で参照を追加するが共有プロジェクト自体に参照を追加することはできない。 どうするかというと、共有プロジェクトを参照する側のプロジェクトの参照内容が反…

Unity - エディタ拡張でメニューを追加した時の優先順位

目次 目次 環境 サンプル集 参考 環境 Unity 2019.4 サンプル集 MenuItem 属性の priority 引数に数字を与える。 [MenuItem("Tools/Window/Hoge", priority = 101)] private static void Hoge() { } [MenuItem("Tools/Window/Fuga", priority = 102)] privat…

Magic Leap 2 - 開発環境構築の覚書(Simulator)

目次 目次 検証環境 手順 MRTK support status Application Simulator 検証環境 ML Hub Version 2.0.10.202304072137 Magic Leap Application Simulator Module Version 3.5.0.202304102127 Magic Leap Application Simulator Runtime Version 3.5.0.2023041…

Windows 11 - Docker DesktopとVirtualBoxを共存させる(Kernel panicが出る場合)

TL;DR Docker DesktopとVirtualBoxを共存させようとした時に、VirtualBoxで「Kernel panic」が表示されて起動しなくなった時の対処法 プロセッサー数を2以上にする 目次 TL;DR 目次 検証環境 前提 Windowsの機能 VirtualBox 起動すると「Kernel panic」が表…