Я пытаюсь десериализовать выход xml из REST API. После десериализации я должен проверить, имеет ли ответ действительные данные.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» и т. Д. Пожалуйста, предоставьте больше контекста и пример того, как вы это сделаете * без * generics было бы хорошим началом ... (Я также рекомендую вам начать следовать соглашениям об именах .NET и изменить тело метода на 'return response.Users! = null && response.Users.UserList! = null; '.) –
Я бы назвал ваш список' List', а не 'UserList',' MovieList' и т. Д. Это сделало бы сопоставление с использованием интерфейса. –
@JonSkeet Я обновил свой вопрос. Надеюсь это поможет. Также спасибо за то, что я настаивал на соглашениях .NET. –