如何获取有关使用类型提供程序框架创建的类型的类型信息

时间:2013-06-17 21:07:28

标签: f# type-providers

我为excel表创建了一个类型提供程序。我需要能够反思这种类型以获取有关其方法和属性的信息。我无法想办法这样做。

type STable = Tables.DTable< @"Book1.xlsx", "Sheet1">

let t = typeof<STable> 

我希望t会有关于STable的方法和属性的信息,但它只返回有关System.Object的信息。

如何获取有关STable类型的信息?

1 个答案:

答案 0 :(得分:2)

在运行时,STable不是真正的.NET类型 - 它被删除到其他类型(在这种情况下为obj) - 这就是(擦除)类型提供程序的工作方式。如果您绝对需要以编程方式获取类型,那么可以使用原始类型提供程序API来执行此操作,但这将非常难看。为此,获取ITypeProvider的实例(就像编译器在后台执行的操作一样),然后导航生成的命名空间和类型,直到获得您正在寻找的System.Type实例。 / p>