我有一个服务器端类,我通过 [DataContract] 在客户端提供它。此类有一个只读字段,我想通过属性使其可用。但是,我无法这样做,因为似乎不允许我在没有 get 和 set 的情况下添加 [DataMember] 属性。
那么 - 有没有办法在没有 setter 的情况下拥有 [DataMember] 属性?
[DataContract]
class SomeClass
{
private readonly int _id;
public SomeClass() { .. }
[DataMember]
public int Id { get { return _id; } }
[DataMember]
public string SomeString { get; set; }
}
或者解决方案将使用 [DataMember] 作为字段 - (如此处所示)?也尝试过这样做,但它似乎并不关心该字段是只读的..?
编辑:是通过像这样破解它来制作只读属性的唯一方法吗?(不 - 我不想这样做......)
[DataMember]
public int Id
{
get { return _id; }
private set { /* NOOP */ }
}