¿Hay alguna trampa que deba tener en cuenta?¿Puedo proporcionar un tipo como entrada a un proveedor de tipo en F #?
¿Sabrá usted del código existente relacionado con el mismo pb que pueda encontrar?
Thks
¿Hay alguna trampa que deba tener en cuenta?¿Puedo proporcionar un tipo como entrada a un proveedor de tipo en F #?
¿Sabrá usted del código existente relacionado con el mismo pb que pueda encontrar?
Thks
Por desgracia, no se puede pasar tipos como parámetros estáticos a un proveedor tipo. Los parámetros estáticos pasados usando MyProvider< "first argument", 42 >
tienen que ser tipos primitivos (como string
, int
y similares). No veo la lista en ningún lugar de la documentación, pero Type
definitivamente no es compatible.
El problema de hacer esto es que podría pasar typeof<MyType>
donde MyType
se declara en el mismo archivo que el archivo que está utilizando el tipo de proveedor, por lo que el F # compilador tendría que compilar primero la primera parte de un archivo, luego invoque al proveedor y luego continúe. Esto parece posible, pero probablemente sea de baja prioridad para el equipo F #.
La mejor manera de pasar información sobre el tipo de un proveedor de Tipo es para darle un nombre de tipo y luego buscar el tipo de uso de la reflexión (esto sólo funcionará si el tipo es de un ensamblaje ya compilado):
type MyTest = MyTypeProvider<"System.Int32">
Tiene sentido. Es por eso que, en mi opinión, necesitamos la noción del nivel de ejecución. Similar a una expresión de cálculo, que puede alimentar el entorno principal con Types, sin ressorting a DLL externos, y cuyo código se ejecuta antes de otros niveles de ejecución superiores. – nicolas