次の VB.NET コードがあります。
Private _retryMessages as Dictionary(Of Type, List(Of Object))
Private Sub RetryMessage(Of T)(message as T)
_retryMessages(GetType(T)).Add(message)
End Sub
Private Sub Publish(Of T)(message as T)
' code to publish message -- dependent on T
End Sub
Publish
辞書を反復処理して各メッセージを呼び出す新しいメソッドを作成したいと思います。
Private Sub AttemptRetryMessages()
For Each messageType In _retryMessages.Keys
messages = _retryMessages(messageType)
' now I'm lost ...
'For Each message In messages
' Publish(message) '<-- System.Object
'Next
Next
End Sub
問題は、私が型を持っていることですがPublish
、ジェネリックに適切な型を提供する方法がわかりません。そのまま呼び出すと、T
と解釈されSystem.Object
ます。
私はコードを完全に制御しているので、これを行うためのより良い方法があれば、私はそれを受け入れます. 目標は、数十種類のメッセージを持つことができるようにすることです。送信が失敗した場合に備えて、それらをキューに入れられるようにしたいだけです。
ありがとう!