Могу ли я предоставить тип в качестве ввода для поставщика типа в F #?
Есть ли какая-то ошибка, о которой я должен знать?
Знаете ли вы существующий код, связанный с тем же pb, с которым я мог бы столкнуться?
Thks
Ответ 1
К сожалению, вы не можете передавать типы как статические параметры поставщику типа. Статические параметры, переданные с использованием MyProvider< "first argument", 42 >, должны быть примитивными типами (например, string, int и тому подобное). Я не вижу список в документации, но Type определенно не поддерживается.
Проблема с этим заключается в том, что вы можете передать его typeof<MyType>, где MyType объявлен в том же файле, что и файл, который использует поставщик типов, и поэтому компилятору F # необходимо сначала скомпилировать первую часть файл, затем вызовите поставщика, а затем продолжите. Это кажется возможным, но это, вероятно, низкий приоритет для команды F #.
Лучший способ передать информацию о типе поставщику типа - дать ему имя типа, а затем искать тип с использованием отражения (это будет работать только в том случае, если тип из уже скомпилированной сборки):