【发布时间】:2013-12-26 05:04:43
【问题描述】:
我想知道是否可以使用 System.Type 作为 F# 类型提供程序中的静态参数,以便我可以编写如下内容:
type HelperType = HelperProvider<typeof<int>>
想法是,是否可以让类型提供程序基于某些 .NET 类型生成一些帮助类型。
【问题讨论】:
-
为什么不“键入 HelperType = HelperProvider
”?我相信它在这方面与其他 .net 语言的工作方式相同。 -
@PhillipScottGivens 感谢您的回复,我做了测试,不行。我稍后再发布。
-
这里是我添加的代码: let helperProvider = let ty = ProvidedTypeDefinition(thisAssembly, providedNamespace, "GPUHelperProvider", Some typeof
, IsErased = false) let parameters = ProvidedStaticParameter("Namespaces", typeof ) :: ProvidedStaticParameter("Test", typeof ) :: [] ty.DefineStaticParameters(parameters, generateHelper) ty 然后在我使用的代码中:` [ ] let namespaces = "TestData .MyGPUTypes.Base;TestData.MyGPUTypes.Derived" type GPUHelper = Alea.TypeProviders.GPUHelperProvider -
@PhillipScottGivens 嗯,不会写代码,那就给个简短的反馈吧。我用
ProvidedStaticParameter("Test", typeof<Type>),然后我用Provider<int>,错误是:Script.fsx(12,67): error FS0001: This expression is expected to have type System.Type but here has type 'a -> int
标签: f# type-providers