我想从REST API反序列化xml输出。解串后,我需要检查响应是否有有效的数据。typeof(T)的内部列表
public class Response
{
public UserWrapper Users { get; set; }
public MovieWrapper Movies { get; set; }
}
public class UserWrapper
{
[XmlElement("User")]
public User[] UserList { get; set; }
}
public class MovieWrapper
{
[XmlElement("Movie")]
public Movie[] MovieList { get; set; }
}
public static bool isValidUserResponse(this Response response)
{
return response.Users != null && response.Users.UserList != null
}
public static bool isValidMovieResponse(this Response response)
{
return response.Movies!= null && response.Movies.MovieList != null
}
XML响应结构
<Response>
<Users>
<User>...</User>
<User>...</User>
<User>...</User>
</Users>
</Response>
<Response>
<Movies>
<Movie>...</Movie>
<Movie>...</Movie>
<Movie>...</Movie>
</Movies>
</Response>
如何让我的isValidUserResponse()和isValidMovieResponse()作为一个通用的方法是什么?
你不清楚你在问什么 - 我们不知道'MovieList'会被放到什么地方,或者'Response'是什么等等。请提供更多的上下文 - 以及如何做这个的例子*没有*泛型将是一个好的开始......(我也建议你开始遵循.NET命名约定,并将你的方法体改为'return response.Users!= null && response.Users.UserList!= null; '。) – 2015-02-11 07:38:34
我会开始将你的列表命名为'List'而不是'UserList','MovieList'等。这将使得使用接口的匹配成为可能。 – 2015-02-11 07:41:37
@JonSkeet我已经更新了我的问题。希望这可以帮助。也感谢坚持我的.NET公约。 – 2015-02-11 07:55:53