VB.netで、動的な型変換を行いたいのですが、、、(CTypeではできない?!)
VB.netで、
動的な型変換を行いたいと思っています。
イメージ的には、
CType(hogehoge,String)やCType(hogehoge,Integer)
CType(hogehoge,MyClassHogehoge)
ではなく、
CType(hogehoge,"String"),CType(hogehoge,"Integer")
CType(hogehoge,"MyClassHogehoge")
というように、
その場の変数で決まる型変換です。
Dim a as MyClassA
Dim b as Object
とあって
CType(b,a)というような変換をしたいのです。
(が、CTypeやDirectCastの第二引数は、
定義された型名しか受け付け無いようです。)
-----
実際には、
mytype.InvokeMember("変数名", BindingFlags.SetProperty Or BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance, Nothing, "インスタンス", New [Object]() {"設定値"})
という処理をやる上で、
"設定値"が文字列(String)である場合、
"変数名"で、動的にアサインされた変数の型(たとえばMyClass)に型変換しないと、
値が設定できないためです。
(CType("設定値","インスタンス"."変数名")というようなこと必要となってくるはずです、、、)
-----
上記手順が、可能なのかどうか、
まったくのナンセンスなのかどうかも
わかっていないので、
一言でもいただけるとたすかります。。。
どうぞよろしくおねがいいたします。
お礼
出来ました。どうもありがとうございました。