C#Web服务和;嵌套复杂类型
因此,我一直在使用这段代码来自动序列化我的“用户”业务对象,它一直工作得很好C#Web服务和;嵌套复杂类型,c#,serialization,C#,Serialization,因此,我一直在使用这段代码来自动序列化我的“用户”业务对象,它一直工作得很好 [WebMethod] public MyUser GetUserFromCard(string code, string cardNumber) { var repo = new MyRepositry(cinemaCode); string parameters = string.Empty; parameters = MyRepositry.MakeParameter("CardNumbe
[WebMethod]
public MyUser GetUserFromCard(string code, string cardNumber)
{
var repo = new MyRepositry(cinemaCode);
string parameters = string.Empty;
parameters = MyRepositry.MakeParameter("CardNumber", cardNumber);
return repo.FindMember(parameters);
}
返回这个xml
<MyUser>
<BirthDate>1982-04-13T00:00:00</BirthDate>
<Address>market st</Address>
<Suburb>sydney</Suburb>
<State>NSW</State>
<Postcode>2000</Postcode>
<UserName>test user</UserName>
<Password>passw0rd</Password>
<FirstName>test</FirstName>
<LastName>user</LastName>
<Email>test@land.com.au</Email>
<ReceiveEmail>true</ReceiveEmail>
<CardNumber>454543523443</CardNumber>
<Points>10</Points>
<Rewards>
<Reward/>
<Reward/>
</Rewards>
</MyUser>
1982-04-13T00:00:00
市场街
悉尼
新南威尔士州
2000
测试用户
passw0rd
测试
用户
test@land.com.au
真的
454543523443
10
我的问题是奖励数组返回的元素数正确,但它们是空的。MyUser和Reward类都绝对没有用于执行自定义序列化的注释或其他方法
有什么想法吗?你能展示一下
奖励课程吗?特别是,与XmlSerializer
一起使用时,它必须有一个公共的无参数构造函数,并且所有*属性必须在getter和setter中都是公共的;因此,以下行为与您所描述的相同:
public class Reward {
private readonly string name;
public Reward(string name) {
this.name = name;
}
public string Name {get {return name;}}
}
但这是可行的:
*=有一些小的警告。您的权利,我缺少奖励对象上所有属性的setter。谢谢
public class Reward {
public string Name {get;set;}
}