リフレクションによる動的ジェネリクス型の生成が下記サイトで紹介されていた。
任意のジェネリック型を動的に生成
VB.net版は以下。
Private Shared Function DynamicCreateGenericType( ByVal genericType As Type, ByVal genericArgMetadata() As Type) As Object Dim dg As Object = Nothing If genericType.IsGenericType AndAlso genericType = genericType.GetGenericTypeDefinition() Then Dim genericTypeArgumentCount = genericType.GetGenericArguments().Length If genericTypeArgumentCount = genericArgMetadata.Length Then Dim gtd = genericType.GetGenericTypeDefinition() Dim dgtype As Type = gtd.MakeGenericType(genericArgMetadata) dg = Activator.CreateInstance(dgtype) End If End If Return dg End Function