【发布时间】:2019-01-18 10:28:42
【问题描述】:
在我的代码中,我正在创建一个 ValuationRequest 对象以发送到 Web 服务并返回一堆日记槽。
其中一个字段 ValuationType 是 SearchType[] 数组,可以是 .sales 或 .lettings,如果未指定,则默认为 sales
request = new ValuationRequest
{
ValuationType = new SearchType[] { SearchType.lettings },
Postcode = model.Postcode,
FromDate = DateTime.Now.AddHours(24),
ToDate = DateTime.Now.AddDays(14)
};
上面的代码被发送到网络服务并返回销售估值。
如何调试并检查为什么忽略 ValuationType 设置?我试过像 Debug.WriteLine(request.ValuationType.ToString()); 和 Debug.WriteLine(request.ValuationType.GetValue());
但没有返回任何有用的东西。我需要将 ValuationType 设置为出租。
感谢任何帮助
【问题讨论】:
-
因为它是一个数组,你实际上可能想做
request.ValuationType[0].ToString(),因为你说你在这个数组中只有一个项目。但是,您通常不需要检查ValuationType是否已设置,它不会帮助您理解为什么它被“忽略”。您可能想要做的是使用 Fiddler 查看实际发送了哪些请求,然后朝着正确的方向继续调查。 -
首先,在使用 Web 服务时,我强烈建议您设置 Fiddler 来拦截进出该 Web 服务的流量。我最近也遇到了类似的问题,我发送的一些请求参数没有被序列化。所以,让 Fiddler 启动并运行,看看你的属性是否被序列化并通过网络发送。此外,如果您使用 WCF,您的请求中可能有一个名为 ValuationTypeSpecified 的属性。尝试将其设置为 true,看看是否有帮助。
-
干杯,我将设置 Fiddler。 ValuationTypeSpecified 用于部分服务,但最近已被删除。我以前也有这个问题!但是,似乎我的 ValuationType 实际上并没有被保留足够长的时间来发送到服务。在两个操作之间传递请求对象时,它似乎被丢弃了......