C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: Delegateを使用しているメソッドのNUnitについて


(過去ログ 44 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■23629 / inTopicNo.1)  Delegateを使用しているメソッドのNUnitについて
  
□投稿者/ じゅで (88回)-(2008/08/19(Tue) 16:12:49)

分類:[VB.NET/VB2005] 

いつもお世話になっております。

じゅでです。


今回お聞きしたいのは、以下の件になります。

クラスに以下のDelegateを宣言します。
Private Delegate Sub Hoge(ByVal str As String)

このDelegateを使用しているメソッドがあります。
private sub TestMethod(ByVal method as Hoge)

いろんなしょり

end sub

TestMethodを呼ぶ際に、イベントの発生元で、委譲先を登録します。

private sub 呼出し元()

dim process as Hoge = AddressOf 呼出すメソッド

TestMethod(process)

end sub

問題になっているのは、以下の点です。

1.クラス内部のDelegate定義の取得方法。
(現在は、System.Reflection.MemberInfoで取れていますが、その他の方法があれば。)

2.取得したDelegateの定義を使用して、テスト対象のメソッド
(今回は、TestMethod(ByVal method as Hoge)となります)を呼出す方法。
(メソッド自体は、MethodInfoで取得は出来ています。)

[Delegate].CreateDelegateでMemberInfoで取得してあるTypeから生成できるかと思ったのですが、
いまいち使い方が理解出来ておりません。

どなたか分かる方がいらっしゃいましたら、お力をお貸し下さい。

よろしくお願い致します。
引用返信 編集キー/
■23633 / inTopicNo.2)  Re[1]: Delegateを使用しているメソッドのNUnitについて
□投稿者/ じゅで (89回)-(2008/08/19(Tue) 17:18:13)
2008/08/19(Tue) 17:18:36 編集(投稿者)

自己解決しました。

まず、MemberInfoでDelegateの情報が取れているので、それをそのまま
Delegate.CreateDelegateで指定するTypeにする為に以下のようにTypeを変換します。

dim delegateType as Type = DirectCast(memberInfo, Type)

次は、取得できたdelegateTypeでCreateDelegateを呼出してあげます。

[Delegate].CreateDelegate(delegateType, Me, "NUnit流す際に使用するダミー用メソッド名")

結果、NUnitで流す為に必要となるメソッドを、テスト対象の内部で、private宣言しているDelegateの型で
作成できます。

お騒がせしました。

# 解決済み追加


解決済み
引用返信 編集キー/
■23635 / inTopicNo.3)  Re[1]: Delegateを使用しているメソッドのNUnitについて
□投稿者/ やじゅ (548回)-(2008/08/19(Tue) 17:34:52)
やじゅ さんの Web サイト
2008/08/19(Tue) 17:35:30 編集(投稿者)

No23629 (じゅで さん) に返信
>
> [Delegate].CreateDelegateでMemberInfoで取得してあるTypeから生成できるかと思ったのですが、
> いまいち使い方が理解出来ておりません。
>

ここ参考になるかしら・・・
他のコントロールのイベントを代入
http://bbs.wankuma.com/index.cgi?mode=al2&namber=7200&KLOG=18

遅かった・・・
解決済み
引用返信 編集キー/
■23692 / inTopicNo.4)  Re[2]: Delegateを使用しているメソッドのNUnitについて
□投稿者/ じゅで (90回)-(2008/08/20(Wed) 13:55:39)
> ここ参考になるかしら・・・
> 他のコントロールのイベントを代入
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=7200&KLOG=18

有難うございます。
参考にさせていただきます。

> 遅かった・・・

いえ、そんな事は無いです。
こういった情報を提供して頂いて、大変嬉しく思っております。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -