- PR -

遅延バインディングでの引数の渡し方

1
投稿者投稿内容
KKK
大ベテラン
会議室デビュー日: 2003/10/10
投稿数: 119
投稿日時: 2005-01-25 20:22
お世話になっております。
VB.NET2003で開発している者です。

現在、以下のように遅延バインディングでDLLを呼び出しています。

Private Sub MenuItem1_Click(ByVal sender As Object _
, ByVal e As System.EventArgs) Handles MenuItem1.Click

Dim a As System.Reflection.Assembly
Dim ap As String = System.IO.Path.Combine( _
System.IO.Path.GetDirectoryName(Application.ExecutablePath) _
, "WindowsApplication1.exe")
a = System.Reflection.Assembly.LoadFile(ap)
Dim af As Object = a.CreateInstance("WindowsApplication1.Form1")
af.Show()
End Sub

ここで、引数を渡してインスタンスを作成したい場合、どうすればいいのでしょうか?

Dim af As Object = a.CreateInstance("WindowsApplication1.Form1")
↑(以下と同様な事をしたい!!)
Dim af as WindowsApplication1.Form1 = New WindowsApplication1.Form1("00")

なにか分かる方がいらっしゃいましたら、よろしくお願いします。


todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-01-25 21:04
引用:

KKKさんの書き込み (2005-01-25 20:22) より:
ここで、引数を渡してインスタンスを作成したい場合、どうすればいいのでしょうか?



コンストラクタのこと?
「遅延バインディング コンストラクタ」で検索して釣れませんか?
KKK
大ベテラン
会議室デビュー日: 2003/10/10
投稿数: 119
投稿日時: 2005-01-26 15:21
返信ありがとうございます。

こんな記事を見つけたのですが、もしかしてこれが原因で
そもそもできないのでしょうか?

http://support.microsoft.com/default.aspx?scid=kb;ja;814603
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-01-26 15:40
コード:
Private Sub MenuItem1_Click(ByVal sender As Object _ 
, ByVal e As System.EventArgs) Handles MenuItem1.Click 

	Dim a As System.Reflection.Assembly 
	Dim ap As String = System.IO.Path.Combine( _ 
	System.IO.Path.GetDirectoryName(Application.ExecutablePath) _ 
	, "WindowsApplication1.exe") 
	a = System.Reflection.Assembly.LoadFile(ap) 
	Dim typ as System.Type = a.GetType("WindowsApplication1.Form1")
	dim arg(0) as object 
	arg(0) = "00"
	Dim af As Object = Activator.CreateInstance(typ,arg) 
	af.Show() 
End Sub 




これで、満たしませんか?
こちらでは、これで動作しました。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
KKK
大ベテラン
会議室デビュー日: 2003/10/10
投稿数: 119
投稿日時: 2005-01-26 19:23
詳しいサンプルありがとうございます。

サンプルのようにしてみたら、できました。
大変助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)