gpt4 book ai didi

servicestack - 如何在查询字符串中传递复杂类型的列表?

转载 作者:行者123 更新时间:2023-12-03 11:11:09 25 4
gpt4 key购买 nike

如何在 ServiceStack 中传递复杂类型的列表?例如,我的请求 DTO 如下所示:

//Request DTO
public class Test
{
public IList<Fund> Funds { get; set; }
}

public class Fund
{
public string Key { get; set; }
public int Percent { get; set; }
}

如何通过 HTTP get 传递序列化对象?
http://localhost:49490/api/funds={ ?? }

KeyValueDataContractDeserializer: Error converting to type: Type definitions should start with a '{', expecting serialized type 'Fund', got string starting with: asdf

最佳答案

ServiceStack 使用 JSV Format 解析查询字符串。这基本上是带有 CSV 样式引号的 JSON(即,仅当您的值具有转义字符时才需要引号)。

虽然您没有在此处定义自定义路由,但在大多数情况下,您的自定义路由与您的请求 DTO 相同,在本例中为 测试 不是/基金。

因此,假设自定义路线如下所示:

Routes.Add<Test>("/test");

您可以通过 QueryString 调用您的服务,例如:

http://localhost:49490/api/test?Funds=[{Key:Key1,Percent:1},{Key:Key2,Percent:2}]

附带说明 DTO 上的接口(interface)通常是一个坏主意,您应该考虑始终避免(至少限制)它的使用。

关于servicestack - 如何在查询字符串中传递复杂类型的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429949/

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