C#
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の自分の記事で、Taskのキャンセルの仕方を調べた。 そこで、なんとなくキャンセルの仕方がわかったのだが、下記の記事を拝見して、さらに便利にキャンセルする方法があると知った。 …
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 自分のアプリから、別のexeを管理者で起動したい。 やりかた ProcessクラスのItartInfoのVerbを"RunAs"にする。 またその際、UseShellExecuteをtrueにして、そのプロセスをStartする。 そ…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと タスクの中で行っている処理を、キャンセルしたい。 また、以前の記事で、タスクの状態遷移を調べたときに、 下表の中のCanceled(6)とFaulted(7)が、どういう状態なのかがよくわから…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと タスクは、作ったり動かしたり、キャンセルしたりで、いろいろ状態が変化する。 その変化を試したときのメモ。 下記のような状態があるらしい。 https://learn.microsoft.com/en-us/dotne…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、Ioc と ServiceCollection を使って、DI(Dependency Injection)をやったが、そのときコンストラクタで受けるクラスは、それぞれ別のインターフェースを実装するクラスだ…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと xmlファイルを読み込みたい。 具体的には、VisualStudioのC#(.net6)のプロジェクトファイル(.csproj)を読み込んで、中身の情報を見たい。 csprojのサンプルはこんな感じ。 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> <ImplicitUsings>e</implicitusings></propertygroup></project>…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと Grepみたいな機能を作るために、指定した拡張子のファイルを、指定のフォルダの中から、子フォルダの中も含めて検索するような機能をつくりたい。 やりかた DirectoryInfoクラスのGetFile…
もくじ https://tera1707.com/entry/2022/02/06/144447#UnitTest やりたいこと クラスの中で持っているprivateなフィールドやプロパティの値を外からいじって、そのクラスをユニットテストしたい。 以前、.NET6でprivateやinternalなメソッドを呼ぶ方法を調…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 「例外設定」の画面で、例外が発生したときにVisualStudioでプログラムを止めてくれるように設定できるが、元々ある例外に対してしかその設定をしたことがなかった。自前で作った例外でも…
やりたいこと 以前、自前でログを取るためのクラスを作ったりしたが、マルチスレッドの場合に同時に書き込んだりすると落ちるなど、問題があった。 頑張って自分で作るのもいいが、世の中には便利なログ取りライブラリがある様子。 最近NLogというのに触れる…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと nugetで参照するあるパッケージ(ライブラリ)の異なるバージョンを、一つのexeから切り替えてつかいたい。 基本、一つのexeでnugetで参照できる1つのパッケージの複数のバージョンを同時に…
パイプ関連記事 もくじ https://tera1707.com/entry/2022/02/06/144447#Pipe やりたいこと 以前の記事で勉強した、プロセス間通信につかう「パイプ」のためのサンプルプログラムを改良したい。 (というか、元のサンプルプログラムがいろいろまずそうだったの…
もくじ https://tera1707.com/entry/2022/02/06/144447/WinUI3 やりたいこと WinUI3で「標準のコントロールのstyleやテンプレート」を取ってくるために、以前、下記の記事で、generic.xamlを取ってくればいいということを調べた。 コントロールのマウスオー…
もくじ https://tera1707.com/entry/2022/02/06/144447#Task やりたいこと 以前の記事で、Taskの中で例外が起きた時のキャッチの仕方を学んだが、今回、Task.WhenAll()で複数の戻り値のあるタスクの完了を待ったときに、そのタスクのどれかで例外があったら…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと あるスレッドで行っている処理を、別のスレッドの処理が終わるまで待ってほしい、みたいなケースがあった。なにかよいやり方ないか、調べてみる。 やり方 ManualResetEventもしくはAutoRe…
もくじ https://tera1707.com/entry/2022/02/06/144447#UnitTest やりたいこと 以前の記事で、ServiceCollectionとIocを使って依存objectの登録と取り出しができることが分かった。 しかし、登録は、プログラムの初めの部分で登録したらよいのだろう、という…
もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 普段はxamlに書いたコントロールのプロパティに、<TextBlock Text="{x:Bind ViewModel.MyString, Mode=OneWay}"/>のような感じでバインディングを記述するが、コードの中からバインディングがしたくなった。 どうやればいいか?調べたい。 前提 </textblock>…
Task関連記事 https://tera1707.com/entry/2022/02/06/144447#Task やりたいこと 以前、「Taskの中で例外が起きた時のキャッチの仕方」で、Taskの中で例外があったときにどうcatchしたらいいかを調べた。 その時は、動き出した直後に例外を起こすようなTask…
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 今ログインしているユーザーのデスクトップとか、ユーザー共通のドキュメントフォルダとかを、パス文字列直打ちではない方法で取得したい。 やったこと WinUI3アプリでは、下記のようにす…
tera1707.com やりたいこと await HidoukiMethod();の実行後は、.ConfigureAwait(false)をしない限りは同じスレッドに戻ってくると思っていたが、なんだかそうではない動きをしていたプログラムがあった。(wait後、別スレッドに戻っている??) どういうとき…
tera1707.com やりたいこと 以前の記事でMoqライブラリを使ってUTをする超便利な方法を知ったが、 最近、コールバックのメソッドを登録するためのメソッドを持つクラス、Interfaceがあり、それをMoqでテストしたい、となった。 前回調べたやり方だと、あるメ…
tera1707.com やりたいこと 以前、.net frameworkで、UWPのAPIを使うやり方を調べたが、同じことを.NET6でもやりたい。 やり方 .NET6のプロジェクトの対象WIndowsのバージョンを、Windows 10, version 1809にしてやる。 csprojの中の<TargetFramework>を下記のようにすること</targetframework>…
tera1707.com やりたいこと UnitTestをするときに便利だと評判のMoqを使って、UTしたい。 参考になるサイト、サンプルコードを挙げているサイトはやまほどあったが、自分の練習のためと部品取りのために自分のサンプルを置いておきたい。 サンプルコード 取…
tera1707.com やりたいこと .NET6とC#で、タスクトレイに常駐しているアプリを作りたい。 タスクトレイからコンテキストメニューを開いて、また別のアプリを起動したりしたい。 使うもの VisualStudio2022 C# WPFのプロジェクトテンプレート WinFormsのAPI …
もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと VisualStudio2022で書いたC#のコードをUnitTestするときに、VS2022の入っているPCでUnitTest実行するときにはテストエクスプローラーを使って実行したり、デバッグもできる。 こんな感じ…
やりたいこと dotnet publishで「配置」を行うためのバイナリ一式を作りたい。 で、その時に依存dll等をexeの中に抱え込んだ「単一ファイル」として作成したいが、単一ファイルの設定がMSBuildでしか設定できず、dotnet publishのオプションとしては存在して…
tera1707.com やりたいこと VisualStudioでビルドしたものと、dotnet publishでビルドしたものの、どちらを最終成果物として使えばよいか?がわかならなかった。 Microsoftの公式ページを見ても、はっきりわかる情報が見つけられないので、いろいろ試してな…
もくじ 目次(WPF/xaml/C#/C++関連メモ) - tera1707’s blog やりたいこと 前回の「vstest.console.exeでUnitTestする」の記事で、コンソール(バッチ)でUnitTestを実行した。 そのときは、UnitTestプロジェクトの中に書いたテストを全部実行していたが、今回は…
もくじ 目次(WPF/xaml/C#/C++関連メモ) - tera1707’s blog やりたいこと 以前、同じTestメソッドに複数のパラメータを渡してテスト実行する方法を調べた。 そこで使った[DataTestMethod]と[DataRow()]で、テストメソッドに好きなパラメータを渡して、同じコ…
もくじ 目次(WPF/xaml/C#/C++関連メモ) - tera1707’s blog やりたいこと 以前、.NetFrameworkでのUnitTestをつくるときに、privateやinternalなメソッドを外から呼ぶ方法を調べたが、.NET6で同じことをしようとすると、PrivateObjectクラスが使えなくなって…