所以我一直在使用这段代码来自动序列化一直运行良好的“用户”业务对象。
[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>
我的问题是奖励数组返回正确数量的元素,但它们是空的。 MyUser和Reward类都绝对没有注释或其他方法来执行自定义序列化。
任何想法?
答案 0 :(得分:2)
你能展示Reward
班吗?特别是,要与XmlSerializer
一起使用,它必须具有公共无参数构造函数,并且所有*属性必须公开,同时具有getter 和 setter;所以下面的行为就像你描述的那样:
public class Reward {
private readonly string name;
public Reward(string name) {
this.name = name;
}
public string Name {get {return name;}}
}
但将工作:
public class Reward {
public string Name {get;set;}
}
* =有一些小问题。