分類:[VB.NET/VB2005]
2008/07/05(Sat) 13:44:21 編集(投稿者)
[OS]XP SP3/Vista SP1
[VB]2005 SP1
お世話になっております。
今回はXMLシリアライズをメソッドで行う際の、DirectCastの第2引数のTypeを動的指定したい
というものです。
Public Function GetXMLData(ByVal XMLFile As String, ByRef DataCls As Object) As Boolean
Dim serializer As XmlSerializer
Dim fs As FileStream
Try
If File.Exists(XMLFile) Then
serializer = New XmlSerializer(DataCls.GetType)
fs = New FileStream(XMLFile, FileMode.Open)
'XMLファイルから読み込み、逆シリアル化する
DataCls = DirectCast(serializer.Deserialize(fs), ここを動的にしたい)
fs.Close()
End If
...略
End Function
しかし、定義済みの型を指定するのが通常で、実行時どころかコンパイルエラーなので
無理な話だと考えてます(その他メソッドにType型引数を追加し、そのTypeを指定したりもしたけど無理)
最悪はVBお得意の暗黙型変換にて解決できるのですが、警告にも出てきて気持ち悪いので
できれば明示的型変換を行いたいと思います。
DirectCastではなくても、Object変数から(または型名を指す文字列から)型取得&型指定してキャストする方法があれば
ご教示ください。よろしくお願いします。