2016-06-16 3 views
0

私はベンダーから提供されたAPIを使用してDLLを持っています。彼らは整数にニーモニック値を与えるために "タイプ"を使います;.NET型が文字列として渡されるとき、その型を参照するにはどうすればよいですか?

私はモジュールの参照ele.dogの中から、私は猫のための1、2を必要とすることができます
ele.dog = 1 
ele.cat = 2 
etc. 

など

dim myEle As TheirClass.ele = ele.dog 

しかし、私は "から文字列変数を翻訳できるようにしたいと思います犬 "を" 1 "に設定する。これを行うための構文は何ですか?

理由は、私はそのクラスに "1"を戻す必要があり、私が持っているのはすべて犬です。

+1

「enum」を明示的または合成的に使用しているようです。 'Enum'は本当に' Enum'なら解析メカニズムを持っています。さもなければ、あなたはリフレクションを使う必要があります。 –

+0

'' dog "は文字列varとしてどこから来たのですか? 'ele.dog'は文字列ではありません – Plutonix

+0

" dog "は外部データソースから来ています。はいTheirClass.eleは列挙型です。私は列挙型解析でドキュメントを見つけようとします。 –

答えて

0

Type.GetType()(またはベンダーのアセンブリを使用してAssembly.GetType())を呼び出して、完全修飾型名からTypeのインスタンスを取得することができます。そこからさまざまなリフレクションAPIを使用して、そのタイプのインスタンスを作成できます(Type.GetConstructor()など)。

そのクラスのインスタンスを取得したら、それがわかっている実際のタイプにオブジェクトをキャストし、通常通りに使用することができます。

1

#DStanleyのコメントのおかげで、私は解析を調べました。 ;と同等です。

dim myEle As TheirClass.ele = ele.dog 

少なくとも、この構文がエラーを与えるものではありません

myVar = "dog" 
dim myEle as TheirClass.ele = [Enum].Parse(GetType(TheirClass.ele), myVar) 

です。

また、私が必要としていることを行うという利点もあります。

関連する問題