具有可移植库的F#类型提供程序

前端之家收集整理的这篇文章主要介绍了具有可移植库的F#类型提供程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个 Windows 8应用程序,并且发现自己想要包含一个 ISO-4217代码列表,我在XML中使用了最新的形式.

当然,所有国家都有这些代码.我认为Type Provider非常适合.但是,由于它们发出代码,我不能将它们与Portable Libraries一起使用.

如何编译类型提供程序,以便它不使用emit,以便使用XML I’ve got

解决方法

我没有创建可从可移植库中使用的类型提供程序的经验,但您似乎假设类型提供程序在运行时发出代码.这实际上并不正确,因此在Portable设置中使用它们可能会更容易.

运行F#编译器时会执行类型提供程序.在这一点上,它可能会生成一些类型,虽然只有一种类型提供者实际上这样做(有两种不同的类型 – 请参阅此SO answer).但是,在编译使用F#类型提供程序的代码时,生成的程序集不会在运行时发出任何代码.

我认为Freebase type provider(在FSharpX中可用)是在便携模式下工作的提供程序的示例.我怀疑这个技巧的一部分是将提供程序拆分为两个程序集 – 一个包含运行时需要的代码,另一个包含设计时组件(构建类型信息,尽管它们也不需要发出).请参阅FreebaseRuntime.fs中的TypeProviderAssembly属性.

猜你在找的Windows相关文章