-1

リフレクションを使用して、作成したカスタムアセンブリにアクセスしようとしています。具体的には、作成した構造の公開リストにアクセスしようとしています。(これは、祝日を定義する休日の構造のリストです。)基本的なものが欠けていると確信していますが、IDEでこの奇妙なエラーが発生し続けます。

Dim f As New OpenFileDialog() With { ... }

Dim rgAsm as Reflection.Assembly
Dim rgType as Type
Dim rgDLL as Object

rgASM = Reflection.Assembly.LoadFile(f.Filename)
rgType = rgAsm.GetType("rgReporting.rgReporting")
rgDLL = Activator.CreateInstance(rgType)

Dim holType As Type = modConf.rgAsm.GetType("rgReporting.PublicHolidays+Holiday")

If holType Is Nothing Then MsgBox("no.") Else MsgBox("yes!")

上記のコードを実行すると、「はい」と表示されます。msgboxは、私のタイプがGetType()によって定義されていることを意味します。ただし、次のコードを書き込もうとすると、次のようになります。

Dim blah as holType

IDEから、「タイプ'holType'が定義されていません」というエラーが表示されます。

私は最終的にそれぞれのタイプを使用することを探していますが、それを行うと同じエラーが発生します。タイプを使用できるものとして定義するための基本的な手順が欠落していることに気付きましたが、それが何であるかを見つけることができないようです。

4

1 に答える 1

1

そんなことはできません。holType 型のような変数を定義するには、静的に定義する必要があります。holType はランタイム型です。

holType のインスタンスを作成するには、次のように記述します。

Dim blah = Activator.CreateInstance(holType);
于 2012-11-19T09:00:50.440 に答える