我正在使用这个框架https://github.com/trydis/FIFA-Ultimate-Team-2014-Toolkit向我发出一些请求,但是一个方法在服务器更新后不再起作用
Task<Item> GetItemAsync(long resourceId);
这会尝试使用
发出请求internal class ItemRequest : FutRequestBase, IFutRequest<Item>
{
private readonly long _baseId;
public ItemRequest(long resourceId)
{
_baseId = resourceId.CalculateBaseId();
}
public async Task<Item> PerformRequestAsync()
{
AddUserAgent();
AddAcceptHeader("*/*");
AddReferrerHeader(Resources.BaseShowoff);
AddAcceptEncodingHeader();
AddAcceptLanguageHeader();
var itemResponseMessage = await HttpClient
.GetAsync(string.Format(Resources.Item, _baseId))
.ConfigureAwait(false);
var itemWrapper = await Deserialize<ItemWrapper>(itemResponseMessage);
return itemWrapper.Item;
}
}
尝试使用
进行反序列化var itemWrapper = await Deserialize<ItemWrapper>(itemResponseMessage);
ItemWrapper.cs是
public class ItemWrapper
{
public Item Item { get; set; }
}
我添加到Item.cs
public string Desc {get;set;}
我得到的错误是
“无法在'Item'类型的对象上找到成员'Desc'。路径 'Item.Desc',第1行,第16位。“
当它试图反序列化
时“{\”Item \“:{\”Desc \“:\”Staff Gold Rare \“,\”Rating \“:\”90 \“,\”Rare \“:\”1 \“, \ “青铜\”:\ “24 \”,\ “银\”:\ “24 \”,\ “金\”:\ “28 \”,\ “的ItemType \”:\ “ContractStaff \”}}”
我无法理解为什么它不会将Desc映射到我的Item.Desc属性
答案 0 :(得分:1)
从错误消息中,您听起来像是将Desc添加到ItemWrapper而不是Item。但是你的JSon将它作为项目的一部分。将Desc移到Item C#类,它应该可以工作。