我定义的WCF契约里,有一个类,里面的属性,有一个因为只读,所以只写了个get。结果客户端就报错。

[DataContract]
public class UserItem
{
public UserItem(int Id, string Name, bool IsActived)
{
this.Id = Id;
this.Name = Name;
this.IsActived = IsActived;
}

[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public bool IsActived { get; set; }
[DataMember]
public string BackGround
{
get
{
return IsActived
? "UserItemNull.png"
: "UserItemNullg.png";
}
}
}


刚开始,以为是构造函数的存在,但测试发现不是。

最后发现是最后这个属性"BackGround"没有set!

既然如此,补上一个呗:

[DataContract]
public class UserItem
{
public UserItem(int Id, string Name, bool IsActived)
{
this.Id = Id;
this.Name = Name;
this.IsActived = IsActived;
}

[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public bool IsActived { get; set; }
[DataMember]
public string BackGround
{
get
{
return IsActived
? "UserItemNull.png"
: "UserItemNullg.png";
}
private set
{
;
}
}
}


问题解决。