「C#」 カテゴリの記事一覧

C# ファイルからサムネイルを作成する

2013年01月28日 23時24分

業務でプログラムを組む度に、サムネイルを作成するロジックをネットからコピペして使っていたわけだけど、それももう終わりにしようということで、ライブラリ(ThumbnailBuilder)を作成した。

紹介というか宣伝というか、そんな内容になっている。
(さらに…)

Sandcastleでsummaryやparamなど記述が反映されない場合の確認点

2013年01月28日 19時27分

こうやって、ちゃんとClass1に対して<summary></summary>を記述して、Sandcastleを使ってAPIドキュメントを作成しようとしたところ。

 

ちゃんとClass1の<summary>をソースコード中できちんと定義しているはずなのに、Sandcastleで生成されたドキュメントに、見事に<summary>などのXMLで記述した情報が抜け落ちてしまう。

20130128191319

ハマった。
(さらに…)

単体テストの作り方がVisualStudio 2012から変わった

2013年01月16日 23時41分

VisualStudioで開発をするとき、単体テストの機能を利用することが多い。

 

これまではVisualStudio 2010を使っていたけど、今日VisualStudio 2012で単体テスト作ろうとして、次のことに気づいたばかりの私が、次の2本の内容を紹介する。

 

VisualStudio 2012の単体試験事情はこうなった

  1. メソッド名右クリックから単体テストの作成ができなくなった(つまり単体テストのプロジェクトも自動作成できない)
  2. テスト設定ファイルが自動生成されなくなった

メソッド名右クリックから単体テストの作成ができなくなった

VisualStudio 2010では、テストしたいメソッド名を右クリックすると、「単体テストの作成」コンテキストが表示されていた。

05

 

ところが、VisualStudio 2012では、メソッド名を右クリックしても、「単体テストの作成」コンテキストが表示されなくなっている。

07

 

そのため、単体テストを作成するためには、手作業で単体テスト用プロジェクト作成とテストファイル作成をしなければいけなくなった。

これがけっこう面倒くさい。

 

VisualStudio 2012での単体テスト作成手順

クラスライブラリのプロジェクトを作成する

130116-002

 

プロジェクトの参照設定にMicrosoft.VisualStudio.QualityTools.UnitTestFrameworkを追加する

130116-003

 

C#クラスファイルを作成する(VB.NETならVBファイル)

130116-004

 

作成したクラスファイルに単体テストの雛形を適用する

このあたりはVisualStudio 2010で作成される単体テストクラスの雛形をコピペでOK。

あとは必要な数だけテストメソッドを作成していけばいい。

 

そのほか、VisualStudio 2010以前の単体テスト雛形を使用する場合は、TestInitialize属性をつけたメソッドが昔はstaticだったのがVisualStudio 2010からはstaticでない点に注意が必要。

VisualStudioのUnitTestで「不適切なシグネチャを含んでいます」エラー

テスト設定ファイルが自動生成されなくなった

VisualStudio 2010では、単体テスト作成時に、自動的にLocal.testsettingsというファイルが作成されていて、あとはVisualStudio上からテスト時のリソース設定などを行うことができた。

それに対してVisualStudio 2012では、単体テストプロジェクトもテストも手作業で作成するようになったため、当然といえば当然であるけど、テスト設定ファイルも手動生成しなければいけなくなった。

 

テスト設定ファイルの作成は必須というわけではないものの、テスト実行時にリソースを扱いたい場合やテスト前後でバッチプログラムなどを実行したい場合に必要になる。

 

テスト設定ファイル *.testsettingsの作成手順

ソリューションエクスプローラのソリューション部分を選択した状態で右クリックして表示されるコンテキストから[追加]→[新しい項目]を選択

01

 

新しい項目の追加ダイアログで[テストの設定]を選択して任意のファイル名に変更し追加

130116-006

 

これをやってやっとテストの設定を行うことができるようになる。

130116-007

 

テスト設定ファイル *.testsettingsの適用手順

テスト設定ファイルを作成しただけでは、まだソリューションから使用されないっぽい。

ソリューションからどのテスト設定を使用するのかを、ちゃんと設定しないといけない。

 

メニューから[テスト]→[テスト設定]→[テスト設定ファイルの選択]

02

 

作成したテスト設定ファイルを選択すると、そのテスト設定ファイルが参照されるようになる。

03

 

複数のテスト設定ファイルを作成して同様にテスト設定ファイルの選択をすると、複数のファイルが参照されるようになる。

04

実行するテストに合わせて切り替えることができるという利点があるってことか?

これは私も使い込んでからのお楽しみ・・

C# LoadイベントでFocus()しても効かないよ

2013年01月06日 21時13分

ハマったのでメモ。

 

Focus()メソッドの呼び出しは、LoadイベントではなくShownイベントでないと正しく反映されない。
(さらに…)

C# 親フォームが閉じられた時に子フォームも自動的に閉じる

2012年12月15日 00時56分

フォームAが開いている。

FormA

 

この状態で、フォームAからフォームBを開く。

FormAB

 

さらにフォームBからフォームCを開く。

FormABC

 

フォームA → フォームB → フォームC

と開いている状態で、フォームBが閉じられたらフォームCが自動的に閉じられる、またはフォームAが閉じられたらフォームBとフォームCが自動的に閉じられる、という仕組みをシンプルに実装したいだって?

 
 

そんな時には、AddOwnedFormメソッドを使うといい。
(さらに…)