gpt4 book ai didi

c# - 使用 RestSharp 返回一个简单的 Guid

转载 作者:行者123 更新时间:2023-11-30 16:56:15 26 4
gpt4 key购买 nike

RestSharp 无法反序列化普通 Guid 的响应。

[Route("User/BeginSession")]
[HttpGet]
public Guid BeginSession()
{
return Guid.NewGuid();
}

这个测试失败了:

[Fact]
public void BeginSession_MadeAsARestRequest_Succeeds()
{
var client = new RestClient("http://localhost/xyz");
var request = new RestRequest("User/BeginSession");

var a = client.Execute(request);

var result = client.Execute<Guid>(request).Data;

Assert.NotEqual(
Guid.Parse("{00000000-0000-0000-0000-000000000000}"),
result);
}

我必须用类包装 Guid 才能使其工作:

public class GuidResponse
{
public Guid Guid { get; set; }
}

[Route("User/BeginSession2")]
[HttpGet]
public GuidResponse BeginSession2()
{
return new GuidResponse
{
Guid = Guid.NewGuid()
};
}

此测试通过:

[Fact]
public void BeginSession2_MadeAsARestRequest_Succeeds()
{
var client = new RestClient("http://localhost/xyz");
var request = new RestRequest("User/BeginSession2");

var result = client.Execute<GuidResponse>(request).Data;

Assert.NotEqual(
Guid.Parse("{00000000-0000-0000-0000-000000000000}"),
result.Guid);
}

这是预期的行为吗?

最佳答案

我猜这是因为只返回一个 GUID 不是有效的 JSON。它将作为字符串返回,而不是作为 JavaScript 对象,例如{ "id": "4bae9421-4fe0-4294-a659-9bc37388344b"}

关于c# - 使用 RestSharp 返回一个简单的 Guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28191074/

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