相关疑难解决方法(0)

WCF:没有设置公开只读DataMember属性?

我有一个服务器端类,我通过[DataContract]在客户端提供.这个类有一个readonly字段,我想通过一个属性提供.但是,我无法这样做,因为似乎我不允许在没有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; }
}
Run Code Online (Sandbox Code Playgroud)

或将溶液中使用[数据成员]作为字段- (例如像显示在这里)?尝试这样做,但它似乎并不关心该领域是readonly ..?

编辑:这是通过黑客攻击这样做的唯一方法来制作一个只读属性吗?(不 - 我不想这样做......)

[DataMember]
public int Id
{
    get { return _id; }
    private set { /* NOOP */ }
}
Run Code Online (Sandbox Code Playgroud)

.net wcf readonly datacontract datamember

59
推荐指数
4
解决办法
4万
查看次数

标签 统计

.net ×1

datacontract ×1

datamember ×1

readonly ×1

wcf ×1