Tips

【C#】Traceの出力先をファイルに変更する

Traceの出力先をファイルにしたりカスタムクラス用いて任意の出力先を設定する方法の紹介です。

【C#】ローカルで作成した待機ハンドルをサービスで使用する

ユーザーがログインしているアカウント上で起動しているソフトで生成した待機ハンドルを同じPC上のサービス (LocalSystem = NT AUTHORITY\SYSTEM) 上で利用する方法の紹介です。

【C#】ファイルを別の場所に書き出してから保存する

既存のファイルに内容を書きこむ時に、直接対象のファイルを開いて書き込みを行うとアプリが強制終了するなどでストリームが異常終了するとファイルの内容が破損する場合があります。この問題を避けるためには以下のアプローチが必要です。 直接ファイルを開…

【C#】WebApplicationBuilderで自作の定義ファイルを扱う

WebApplicationBuilder などでは定義ファイルとして appsettings.json と appsettings.Development.json は最初から利用できます。 この定義ファイルの仕組みに自作の JSON ファイルを追加しIConfiguration 経由で内容を利用できるようにしたいと思います。 …

【C#】UTF-8のBOMあり/BOMなしの指定

UTF-8はBOMの有無があり時と場合によって適切に選択する必要があります。 // BOMあり Encoding bom = System.Text.Encoding.UTF8; // BOMなし Encoding withoutBom = System.Text.UTF8Encoding(false); 取得方法に対称性が無いのが気になるので Utility 化し…

【C#】オープン中のファイルの内容を読み取る

何度も何度も調べなおしてるので自分用のメモです。 他のプロセスが開いているファイルを開こうとすると以下のエラーが発生する。 System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル 'xxxx' にアクセスできません。 以下のよう…

【Unity】Random.Stateの内容を取得する

Unity の乱数のシードを保持している Random.State という型があります。 定義は以下の通りでシリアライズして保存することはできますが、中身を見ることはできません。中身を認識する必要は本来ありませんが、リフレクションを使えば中身を取得できそうです…

【C#】ListをAsSpanしたい

ハック的な手法で List に AsSpan の拡張メソッドをは生やすことができますが、.NET5からは標準ライブラリでサポートされたので両対応してみます。 public static class ListExtensions { [MethodImpl(MethodImplOptions.AggressiveInlining)] public static…

【C#】アプリを多重起動しないようにする

Mutex を取得して新規に作成できれば新規の起動、取れなかったら 2つめの起動という感じに判断できます。 string key = "application_name"; using (var mutex = new Mutex(true, key, out bool createdNew)) { if (!createdNew) { return; // 多重起動にな…

【C#】NuGetパッケージを再インストールする

環境 Windows10 VisualStudio 2019 状況 以下でパッケージのキャッシュをクリアしたらエラーが出て「発行」できなくなった。 ツール > オプション > NuGet パッケージ マネージャー > すべての NuGet キャッシュをクリア 次に、Webプロジェクトを発行すると…

VisualStudio2022がメモリを使い過ぎている場合の対処法

なんか VisualStudio 2019 で開いてたソリューションを 2022 で開くと 3倍くらいメモリを消費してる場合があるため、PCのメモリが 16GB だと Teams + Outlook + Chorome なんか開いてると、メモリを使いきってそのまま全部クラッシュしたり、OS が変な感じに…

【C#】appsettings.jsonをコンソールで扱う

コンソールアプリでも App.congi に代わる新しい定義ファイルの形式である appsettings.json を使用する場合の設定と実装方法の紹介です。 ASP.NET Core および ASP.NET 5~6 であれば、IServiceCollection.Configure にセクション名を渡せば勝手に内容をオ…

OpenCVをCMakeとVsiaulStudiio2019でビルドする

ダウンロードした OpenCV の bin フォルダに DLL 入ってなくね?Lib はどこ…? え、自分でビルドするんだよ、え、マジで? まぁ、C++er なら普通のことですが… …という事でまぁこういった事はプロジェクト初期には割と毎回発生する、というか、Windows民は大…

Windows10から游ゴシックを削除する

初めに Windowsから「游ゴシック」を削除するための「Meryo UIも大嫌い」などのツールで游ゴシックに関係するフォントの設定を変更しても「エクスプローラーのコンテキストメニュー」、「UWPの設定UI」などは游ゴシックが引き続き表示されます。 正直なとこ…

はてなブックマークのホッテントリから特定の記事を非表示にする

Adblock plusのフィルター機能を使ってはてなブログのホットエントリーを非表示にする方法です。 確認環境 Adblock plus GoogleChome Adblock plusがある環境ならどれでも行けると思います。しらんけど。 Fanboy's Social Blocking Listが入ってるとはてぶの…

【C#】Consoleの出力先を変更する

Consoleの出力先をファイルにしたりカスタムクラス用いて任意の出力先を設定する方法です。 確認環境 Consoleの出力先の変更方法 Consoleの出力先をファイルに変更する 変更した後に出力先を元に戻す カスタム出力先を指定する Consoleとトレースに同時に出…

Excelで増殖したセルのスタイル(書式)を一括で削除する

Excelでファイルサイズが異様に大きくなっている時に、セルのスタイルが異常に増殖している事があります。 原因は不明ですが、どうやら"シートを複製する"、"セルをコピペする"操作で増殖するみたいです。 以下画像の赤枠の書式欄ですが、見えている部分の様…

VisualStudioのエラーリンクの検索エンジンをGoogleに変更する

VisualStudioでコードを書いている時にコンパイルエラーが発生した際に、エラーリンク(以下画像の赤枠)をクリックすると、Bingでエラーが検索されます。 このBing検索、全く役に立たないので検索エンジンをGooleに変更します。 前提条件 以下、唯一の条件で…

環境変数をコマンドを使ってバックアップする

Windowsで、コマンドを使って環境変数をファイルにバックアップする方法です。 環境変数自身は、OSのレジストリに保存されているため、レジストリ操作のための「reg」コマンドを使用します。 regコマンドでレジストリを保存する時のパラメータは以下の通りで…

Google翻訳から韓国語を消す

2021-07-20 Google翻訳にはお世話になっていますが、言語の選択欄に「韓国語」って表示ありますよね?使わないし邪魔なので消したいと思います。 以下前提条件です。 Chromeを使っている Adblock Plus の Extension を入れていること Adblockの要素のブロッ…

Visual Studio 2017で単体テストもしくはTDDする

Visual Studio 2017でC#で開発してる開発者で、開発時にMSTestを使って単体テストを作成したり、コードを書くときにTDDしたりは、すっかり開発風景に定着していると思います。ただ、たまに作成方法を忘れるので、確認を兼ねてVisua Studio 2017 Community版…

C#の4つのTimerの用途と使い方

C#というか.NETのタイマーの種類について整理と説明をしたいと思います。 Timers.TimerとThreading.Timerの概要 Forms.TimerとDispatcherTimerの概要 4種類のオブジェクトの使い方 System.Timers.Timerの使い方 System.Threading.Timerの使い方 System.Windo…

C#のSystem.Threading.Timerクラスの精度を確認する

C#のTimerクラスの定周期処理で、タイマーのインターバールを1msに設定した時の実際の実行間隔を確認した話です。

WindowsErver2008R2でデスクトップにゴミ箱を表示する

英語版のWindowsServer2008R2のデスクトップにゴミ箱を表示するには[Start] から Search programs and files に show or hideと入力して検索結果に Show or hide common icons on the desctpと表示されるのでそれを選択して[Recycle Bin]にチェックを入れる…

【C#】プロセスの現在のメモリ使用量を取得する

2022-07-04 Environmentクラスで取得する プロセスが使用しているメモリ使用量を取得するには Environment クラスの WorkingSetProperty を参照すれば現在の使用量が取得できます。 long currentSet = Environment.WorkingSet Console.WriteLine("現在のメモ…

外部に公開しているメソッドは引数チェックをしよう

引数チェックって大切ですよね?オブジェクトが健全な状態を保つためにも外部に公開してる操作は引数チェックを行いましょう。対象は以下となります。 チェックすべき操作 public なクラス *1 public | protected なメソッドもしくはプロパティ *2 チェック…