小编phi*_*ast的帖子

F#是否了解其受歧视的工会的编制表格?

F#中的区分联合被编译为抽象类,其选项成为嵌套的具体类.

type DU = A | B
Run Code Online (Sandbox Code Playgroud)

DU是抽象的,而DU.A和DU.B是具体的.

使用ServiceStack,可以使用函数自定义类型到JSON字符串和后面的序列化.关于DU类型,这是我在C#中如何做到的.

using ServiceStack.Text;

JsConfig<DU.A>.SerializeFn = v => "A"; // Func<DU.A, String>
JsConfig<DU.B>.SerializeFn = v => "B"; // Func<DU.B, String>
JsConfig<DU>.DeserializeFn = s =>
    if s == "A" then DU.NewA() else DU.NewB(); // Func<String, DU>
Run Code Online (Sandbox Code Playgroud)

F#是否了解其受歧视的工会的编制表格?如何在编译时获得F#中的DU.A类型?

typeof<DU> // compiles
typeof<DU.A> // error FS0039: The type 'A' is not defined
typeof<A> // error FS0039: The type 'A' is not defined
Run Code Online (Sandbox Code Playgroud)

我可以很容易地在F#中注册一个用于反序列化的函数.

open System
open ServiceStack.Text

JsConfig<DU>.RawDeserializeFn <-
    Func<_, _>(fun s -> printfn "Hooked"; if …
Run Code Online (Sandbox Code Playgroud)

f# servicestack servicestack-text

10
推荐指数
3
解决办法
560
查看次数

"目标F#运行时:"名义上是"N/A"吗?

在Visual Studio 2013.4中我有一个F#项目并查看其属性我看到"目标F#运行时:"是"N/A"并且下拉框被禁用.

在同一解决方案中,还有许多其他F#项目.它们都有F#3.1的"目标F#运行时:"(FSharp.Core,4.3.1.0).

BTW"目标框架:"是.NET Framework 4.5.

"目标F#运行时:"名义上是"N/A"还是休斯顿有问题?

f#

2
推荐指数
1
解决办法
314
查看次数

标签 统计

f# ×2

servicestack ×1

servicestack-text ×1