コーヒー飲みながら仕事したい

仕事で使う技術的なことの備忘録とか


Wordpress に引っ越しました!

C#

SQLite を使用して単体テストしていると、'FOREIGN KEY constraint failed' と怒られる

単体テストで SQLite を使用していて困ったことが合ったので、その概要と解決策です。 外部キー制約にひっかかる DB を使用する箇所の単体テストにおいて SQLite を使用することで簡単にテスト環境を構築することが出来ます。とりあえずテストしたいところだ…

WPF 閉じるボタンのみを非表示にしたウィンドウの作り方

諸事情で閉じるボタン(いわゆる×ボタン)を非表示にしつつ、最小化ボタンのみを残す必要がありました。 たったこれだけのことなのに、結構複雑な処理を実装しないといけなかったので、備忘録として残しておきます。 参考サイト 今回、予想以上に処理が複雑…

WPF で 上下左右に中央寄せのラベル(テキストボックス)を作る

WPF で上下左右(水平垂直方向)に中央寄せするラベルの作り方でハマったので備忘録です。 調べてもなかなかでてこなかった・・ やりたいこと ずばり、以下の絵のようなやつです。 解決策 以下の自動翻訳されたページに答えがありました。 codeday.me 上記絵…

Microsoft.Extensions.DependencyInjection の DI コンテナの挙動について

ASP.NET Core でよく使われる(?) Microsoft.Extensions.DependencyInjection をクラスライブラリやコンソールアプリケーションで使用したときの挙動についての備忘録です。 Microsoft.Extensions.DependencyInjection の DI コンテナの依存性の注入方法 …

WPF で外部のプロジェクトからユーザーコントロールとかを参照する方法

地味にかなりハマったので、備忘録として残しておきます。 シチュエーションとしては、以下の感じです。 プロジェクトは WPF を前提 ユーザーコントロール(MyUserCtrl.xaml)を含むクラスライブラリとしてプロジェクトAがある プロジェクトAを参照したエン…

自作の nuget package に xml コメントを付加する

以下、 .NET Standard の話です。 .NET Standard では、 nuget package の作成方法は、 *.nuspec を使用しなくても、 *.csproj に以下のように記載すれば *.nupkg が出力されます。 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <LangVersion>latest</LangVersion> <NeutralLanguage>ja-JP</NeutralLanguage> </propertygroup></project>

Visual Studio 2017 でデフォルトの using を設定する【項目テンプレート使用】

Visual Studio で C# でアプリケーションを開発中に個人的によく思うのが、例えば using System.Linq とか using System.Threading.Tasks とか、毎回毎回手で書くの面倒くさいなぁというところです。 using System とかは最初から記述してあるので、それと同…

.net standard で nuget package (*.nupkg) を生成する方法

.net framework 等では、 *.nuspec というファイルを経由して *.nupkg を作る方法があるみたいですが、.net standard では異なるみたいです。(もしかしたら .net core も同様かもしれませんが、試していません) というかかなり楽で、 *.csproj から生成す…

.NET Standard で EntityFrameworkCore の Scaffold を実行する

前回、 .NET Core で Scaffold しましたが、 tassi-yuzukko.hatenablog.com クラスライブラリ側に Scaffold して DTO クラスを自動生成したくなりました。 しかし、単純ではなかったので、こちらも備忘録として残しておきます。 はじめに 単純に .NET Standa…

EntityFrameworkCore で Scaffold 使ってデータベースファーストする方法

主題の件ですが、ハマった部分もあったので備忘録として残しておきます。 先に注意点ですが、 .NET Core コンソールアプリケーションと、 ASP.NET Core では Scaffold の条件が異なる というのが今回ハマったところです。 前提事項 恐らく現状(dotnet core …

moq でデリゲートをモックする方法

Func<XXX> といったようなデリゲートをモックしたい時があります。 これを、 moq を使用する方法です。 やり方 たとえば、int 型を2つ受け取り、文字列に変換するデリゲートがあったとします。(つまり、 Func<int, int, string>) これをモックする方法は、以下の通りです。 var m</int,></xxx>…

moq で virtual メソッドをコールする方法

moq を使っていて、ハマったことがあったので備忘録として残しておきます。 主題の通り、「moq で virtual メソッドをコールする方法」です。 やりたかったことと症状 以下のような Dispose パターンを使用したテスト対象のクラスがあったとします。 public …

Observer パターンを自分なりに整理してみる

免責 いきなり免責というのもアレですが、この記事の真偽は一切保証を致しかねます。 正直、かなり怪しいと思いますので、少なくとも情報収集されている方は、この記事はスキップされたほうが無難かと思われます。 (私のアカウントに書いてあることはもとも…

Visual Studio でビルド時に「のプロジェクト情報が見つかりません。これは、プロジェクト参照がないことを示している可能性があります。」でエラーになったときの対処法

C#

(備考:もしかしたら .NET Standard のみの事象かもしれません) 事象 主題の通り、 Visual Studio でビルド実行時に、以下のようなエラーになりました。 (xxx.csproj はソリューション内で参照しているプロジェクト) 'xxx.csproj' のプロジェクト情報が…

単体テスト<C#> async な moq をセットアップするときにハマったこと

C# で単体テストで moq を使用した場合のお話です。 備忘録として残しておきます。 以下のようなインターフェイスがあったとします。 public interface IHoge { Task SomethingAsync(int x); } これを moq でセットアップする場合、以下のように書く必要があ…

ProtocolBuffers の C# 版の Timestamp について

前に ProtocolBuffers の C# 版の導入をやってみたのですが、 tassi-yuzukko.hatenablog.com このときに proto ファイル import google/protobuf/timestamp.proto が読込めないせいで以下のようにクラスファイル変換のコンパイルに失敗していました。(この…

Protocol Buffers の C# 版で遊んでみる

Protocol Buffers のC#版 有名どころでは、以下の2つがあるようです。 protobuf-net 特徴:.proto ファイルが不要で、すごくシンプルにシリアライズ/デシリアライズできる。 Google.Protobuf 特徴:.proto ファイルが必要で、事前にシリアライズ/デシリア…

C#でTCP通信のプログラムを作ってみる

主題の通り、作ってみるのだが、とりあえず今は調査中なので「これは押さえておきたい」というところのメモ 目的 基本的にはサーバープログラムを作る。 同時に複数のコネクションが接続されることを想定する。 基本的には↓が参考になる。 ichiroku11.hatena…