Как я могу получить информацию о типе, созданном с использованием структуры поставщика типов

Я создал поставщик типов для таблицы Excel. Мне нужно иметь возможность размышлять об этом типе, чтобы получить информацию о его методах и свойствах. Я не могу понять, как это сделать.

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

let t = typeof<STable> 

Я надеялся, что у t будет информация о методах и свойствах STable, но он возвращает информацию только о System.Object.

Как я могу получить информацию о типе STable?


person user2484161    schedule 17.06.2013    source источник


Ответы (1)


Во время выполнения STable не является реальным типом .NET - он стирается до какого-то другого типа (в данном случае obj) - именно так работают (стирающие) поставщики типов. Если вам абсолютно необходимо получить тип программно, то это можно сделать с помощью API провайдера сырых типов, но это будет довольно некрасиво. Для этого получите экземпляр ITypeProvider (точно так же, как это делает компилятор за кулисами), а затем перемещайтесь по результирующим пространствам имен и типам, пока не получите искомый экземпляр System.Type.

person kvb    schedule 17.06.2013