Хорошей новостью является то, что веб-сервис .NET позаботится о XML для вас. Все, что вам нужно сделать, это объявить тип возвращаемого значения List<Artist>
или аналогичный. Веб-сервис позаботится о сериализации ваших объектов в XML для вас. Непонятно, катал ли ты свой собственный XML.
Вставленный вами XML выглядит так, как будто он получен из WSDL.
Запустите ваш проект в Visual Studio и перейдите на страницу .asmx веб-службы. Вы найдете что-то вроде этого.
Чтобы проверить работу с использованием протокола HTTP POST, нажмите кнопку «Invoke».
Нажмите эту кнопку, чтобы запустить метод.
Возможно, попробуйте этот простой тестовый WebMethod, если ваш собственный не работает так, как вы ожидаете:
Результатом будет этот документ XML .
[WebMethod]
public List<Artist> ListAllArtists()
{
List<Artist> all = new List<Artist>();
Album one = new Album { Name = "hi", SongNames = new List<string> { "foo", "bar", "baz" } };
Album two = new Album { Name = "salut", SongNames = new List<string> { "green", "orange", "red" } };
Album three = new Album { Name = "hey", SongNames = new List<string> { "brown", "pink", "blue" } };
Album four = new Album { Name = "hello", SongNames = new List<string> { "apple", "orange", "pear" } };
all.Add(new Artist { Albums = new List<Album> { one }, Name = "Mr Guy" });
all.Add(new Artist { Albums = new List<Album> { two }, Name = "Mr Buddy" });
all.Add(new Artist { Albums = new List<Album> { three, four }, Name = "Mr Friend" });
return all;
}
public class Artist
{
public List<Album> Albums;
public string Name;
}
public class Album
{
public string Name;
public List<string> SongNames;
}