我正在使用PostAsJsonAsync将参数传递给web api服务,如此
public T Save<T>(string url, T item) where T : class
{
using (var client = new HttpClient())
{
client.BaseAddress = _dbServiceUriProvider.GetUri();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync(url, item).Result;
if (!response.IsSuccessStatusCode)
{
throw new DbServiceException("Error in DbServiceDataSaver:\r\n" + response.ReasonPhrase);
}
T returnVar = response.Content.ReadAsAsync<T>().Result;
return returnVar;
}
}
问题是这只是序列化我传递的对象而不是任何子对象。例如,如果我有一个具有HashSet成员的类Foo&lt; Bar&gt; Bars没有被序列化。这是因为HashSets无法序列化还是其他事情发生在这里?
答案 0 :(得分:1)
在类级别使用Serializable属性,在属性级别使用datamember,它将适用于您或使用json.serializeObjectmethod。 并且为了查看json数据不需要fiddler只需安装一个名为json viewer的插件,它将在浏览器本身上以json格式显示您的数据。 [https://addons.mozilla.org/en-Us/firefox/addon/jsonview/][1]
答案 1 :(得分:0)
事实证明,我的类只有部分属性的[DataMember]属性,所以只有那些属性被序列化