在 VB.Net 使用匿名对象类型创建通用 class 对象

In VB.Net using an anonymous object type to create a generic class object

我有一个函数接受一个对象类型的参数,它是在别处生成的匿名类型。我还有一个泛型 class,我正在尝试创建一个使用该匿名类型作为传递给泛型 class 的类型的实例。但是我无法让它工作。

所以这基本上就是我的通用 class:

Class Foo(Of T)
  ...
End Class

所以在我的函数中我有这样的东西:

Public Sub MyFunction(data As Object)
  'data is an anonymous Type

  dim item = new Foo(Of ??)
End Sub

我不知道要为新的 Foo 行添加什么才能使其正常工作。我尝试的一件事是在 Foo 上创建一个构造函数,它接受类型 T 的参数,以便从中推断出类型,但是当我调用构造函数时,这给了我这个编译错误:

'Foo(Of T)'

的类型参数太少

我如何让它工作以便泛型 class 接受匿名类型?

MyFunction dataobject 更改为 T

Public Sub MyFunction(Of T)(data As T)
    Dim item = New Foo(Of T)()
End Sub