Tag: datamember

WCF:暴露只读的DataMember属性没有设置?

我有一个服务器端类,通过[DataContract]在客户端提供。 这个类有一个只读字段,我想通过一个属性提供。 然而,我无法这样做,因为似乎我没有被允许添加一个[DataMember]属性,而没有得到和设置。 所以 – 是否有一种方法来拥有一个[DataMember]属性而不需要setter? [DataContract] class SomeClass { private readonly int _id; public SomeClass() { .. } [DataMember] public int Id { get { return _id; } } [DataMember] public string SomeString { get; set; } } 或者解决scheme将使用[DataMember]作为字段 – (如图所示)? 试图这样做,但它似乎并不在意字段是只读的? 编辑 :是唯一的方法来通过黑客这样做只读属性? (不 – 我不想这样做…) [DataMember] public int Id { get { […]

何时使用DataContract和DataMember属性?

我很关心WCF中的DataContract属性。 据我所知,它被用于类似类的用户定义types的序列化。 我写了一个这样暴露在客户端的类。 [DataContract] public class Contact { [DataMember] public int Roll { get; set; } [DataMember] public string Name { get; set; } [DataMember] public string Address { get; set; } [DataMember] public int Age { get; set; } } 它正常工作,但是当我删除DataContract和DataMember它也能正常工作。 我不明白为什么它正常工作。 任何人都可以告诉我DataContract的实际用途是什么? 我的服务合同是这样的 [ServiceContract] public interface IRestServiceImpl { [OperationContract] Contact XmlData(string id); }