gpt4 book ai didi

c# - 我应该如何在 F# 项目中序列化来自 Refit 的 JSON?

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:33 28 4
gpt4 key购买 nike

我正在使用 Refit在 C# 项目中创建 API 客户端。我更喜欢用 F# 做所有事情,但 Refit doesn't fully support F# yet .

如果我创建我的 User C# 中的模型一切都很好,但我更希望能够表达哪些属性是可选的并适本地处理它们。

如果我添加 FSharp.Core并使用 FSharpOption<string>或类似的然后尝试访问这些成员的断言失败并显示 NullReferenceException但前提是 JSON 响应包含可选内容。

如果我创建一个包含 User 的单独 F# 项目模型我总是得到一个NullReferenceException尝试反序列化时。

不可否认,将任何模型保留为 C# 项目的一部分似乎更容易,但我不想牺牲了解哪些成员在 F# 端是可选的。

解决这个问题的最佳方法是什么?

最佳答案

我目前的想法是按原样保留 C# 项目并创建一个 F# 包装器,它以 Result 类型返回模型,并在适当的地方使用可选成员。


更新:

我最终这样做并将以下内容添加到我的 FSharp 模型中:

static member ToCSharp :
user: User
-> CSharp.User

static member FromCSharp :
user: CSharp.User
-> User option

关于c# - 我应该如何在 F# 项目中序列化来自 Refit 的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31194017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com