C#.NET Web服务并返回具有子对象列表的对象列表
我正在构建一个Web服务来传回一个(艺术家)对象列表。 在艺术家对象内部有一个(专辑)对象列表。 在Album对象中有一个歌曲列表。
所以基本上我正在建立一个大的父母音乐树。
我的问题是,如何使用SOAP传递此信息?
什么是最好的使用方法。
现在我得到的只是
string string string
它在专辑中分解,但它显示了我存储的两张专辑。
任何建议,将不胜感激!
好消息是.NET Web服务将为您处理XML。 您所要做的就是将返回类型声明为List
或类似的。 Web服务将负责将对象序列化为XML。 目前尚不清楚您是否正在推出自己的XML。
您粘贴的XML看起来像是来自WSDL。
在Visual Studio中运行项目,然后浏览到Web服务.asmx页面。 你会发现这样的东西。
要使用HTTP POST协议测试操作,请单击“调用”按钮。
单击该按钮以运行方法。
也许尝试这个简单的测试WebMethod,如果你自己没有按预期工作: 结果将是这个XML文档 。
[WebMethod] public List ListAllArtists() { List all = new List (); Album one = new Album { Name = "hi", SongNames = new List { "foo", "bar", "baz" } }; Album two = new Album { Name = "salut", SongNames = new List { "green", "orange", "red" } }; Album three = new Album { Name = "hey", SongNames = new List { "brown", "pink", "blue" } }; Album four = new Album { Name = "hello", SongNames = new List { "apple", "orange", "pear" } }; all.Add(new Artist { Albums = new List { one }, Name = "Mr Guy" }); all.Add(new Artist { Albums = new List { two }, Name = "Mr Buddy" }); all.Add(new Artist { Albums = new List { three, four }, Name = "Mr Friend" }); return all; } public class Artist { public List Albums; public string Name; } public class Album { public string Name; public List SongNames; }
像这样的东西:
[DataContract] class Artist { ..... [DataMember] public List Albums; ..... } [DataContract] class Album { ..... int ID; ..... [DataMember] public List Songs; ..... } [DataContract] class Song { ..... int ID; ..... [DataMember] public string Title; ..... }
注意:这只是为了说明如何使对象序列化。 修改它以使用属性而不是公共字段等…
您只需要实现WCF服务并使用List
。
- 如何在C#中将.docx转换为.pdf
- C#中的并行树遍历
- 通过Windows服务运行时,操作不可用(从HRESULTexception:0x800401E3(MK_E_UNAVAILABLE))?
- ASP.net MVC – 我应该使用ViewModel中的AutoMapper到Entity Framework实体吗?
- ListView InputBinding MouseBinding不起作用
- 为什么要设置命令对象参数的size参数呢?
- 如何在LINQ中实现具有良好调用语法的NotOfType ?
- entity framework更新多对多关系:虚拟与否
- 有没有更好的方法从C#中的大写字母创建首字母缩略词?