C# 用RestSharp反序列化
我一直在寻找类似的StackOverFlow帖子,但似乎没有任何效果 我正在尝试使用RestSharper反序列化从restful服务发送给我的XML字符串。基本上,我的问题是我的模型类的一些属性被保留为空,我不知道为什么 我使用的模型类是:C# 用RestSharp反序列化,c#,.net,xml,restsharp,C#,.net,Xml,Restsharp,我一直在寻找类似的StackOverFlow帖子,但似乎没有任何效果 我正在尝试使用RestSharper反序列化从restful服务发送给我的XML字符串。基本上,我的问题是我的模型类的一些属性被保留为空,我不知道为什么 我使用的模型类是: class Photo { [SerializeAs(Name = "id")] public long? id { get; set; } [SerializeAs(Name = "title")] public str
class Photo
{
[SerializeAs(Name = "id")]
public long? id { get; set; }
[SerializeAs(Name = "title")]
public string title { get; set; }
[SerializeAs(Name = "description")]
public string description { get; set; }
[SerializeAs(Name = "size")]
public long? size { get; set; }
[SerializeAs(Name = "user")]
public User user { get; set; }
[SerializeAs(Name = "tags")]
public List<Tag> listTags { get; set; }
[SerializeAs(Name = "comments")]
public List<Comment> listComments { get; set; }
}
class Photos
{
[SerializeAs(Name = "photos")]
public List<Photo> listPhotos { get; set; }
}
班级照片
{
[序列化为(Name=“id”)]
公共long?id{get;set;}
[序列化为(Name=“title”)]
公共字符串标题{get;set;}
[序列化为(Name=“description”)]
公共字符串说明{get;set;}
[序列化为(Name=“size”)]
公共长?大小{get;set;}
[序列化为(Name=“user”)]
公共用户{get;set;}
[序列化为(Name=“tags”)]
公共列表列表标签{get;set;}
[序列化为(Name=“comments”)]
公共列表listComments{get;set;}
}
班级照片
{
[序列化为(Name=“照片”)]
公共列表列表照片{get;set;}
}
我尝试反序列化的XML遵循以下结构:
<photos>
<photo>
<id>1</id>
<title>some title...</title>
<description>some description...</description>
<size>162798</size>
<user>
<id>4</id>
<name>John</name>
</user>
<tags>
<tag>
<id>1</id>
<value>some value...</value>
</tag>
</tags>
<comments>
<comment>
<id>1</id>
<value>some comment</value>
<author>admin</author>
</comment>
</comments>
</photo>
</photos>
1.
一些标题。。。
一些描述。。。
162798
4.
约翰
1.
一些价值。。。
1.
一些评论
管理
回到C代码。问题是,Photo类的注释列表、标记列表和用户对象都被保留为空。有人知道为什么会发生这种情况吗?只是出于好奇,您的注释和标记类是否设置为可序列化的?是的,它们设置为可序列化的。我无法重现该问题,我尝试重新创建了所有类和xml,但都没有问题。从外观上看,只填充了基本类型。您能发布一个实际xml的示例吗?xml基本上与我已经发布的相同。请问您是如何向restful服务提出请求的??目前,我正在使用它发出请求:var client=new RestClient(@“restfulpath”);var请求=新的重新请求(“resource”,Method.GET);私人照片=新照片();请求。添加对象(照片);resresponse response=(resresponse)client.Execute(request);我没有给restful服务打电话,也许那就是我断开连接的地方。我是从您已经收到xml并试图将其反序列化回photos对象的角度来处理这个问题的,我错了吗?restsharper是否允许您只查看返回的xml字符串?只是为了验证对象是否存在。