Wcf [DataContractAttribute(IsReference=true)]和[DataContract]之间有什么区别
我正在尝试编写一个WCF Web服务,它将以JSON的形式返回我的数据,以便我可以从一些客户端脚本调用它 我知道我需要在Wcf [DataContractAttribute(IsReference=true)]和[DataContract]之间有什么区别,wcf,json,Wcf,Json,我正在尝试编写一个WCF Web服务,它将以JSON的形式返回我的数据,以便我可以从一些客户端脚本调用它 我知道我需要在[DataContract]属性中修饰我想从Web方法返回的任何类,然后在[DataMember]属性中修饰任何成员。记住,我想返回实体类型,所以我转到实体ObjectContext类 然而,当我查看.edmx文件时,我可以看到这些类被修饰成这样 [EdmEntityTypeAttribute(NamespaceName="PteDotNetModel", Name="Asso
[DataContract]
属性中修饰我想从Web方法返回的任何类,然后在[DataMember]
属性中修饰任何成员。记住,我想返回实体类型,所以我转到实体ObjectContext
类
然而,当我查看.edmx文件时,我可以看到这些类被修饰成这样
[EdmEntityTypeAttribute(NamespaceName="PteDotNetModel", Name="AssocFile")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class AssocFile : EntityObject
然后,当我尝试添加[DataContract]
时,我收到一个错误,说我不能有重复的属性。我很困惑,虽然他们是相似的,但显然是不同的,不是吗
问题的第二部分是如何通过WCF服务返回实体类型?这两个属性是相同的;可以排除尾随的“属性”: 按照惯例,所有属性名称都以“attribute”一词结尾,以区别于.NET Framework中的其他项。但是,在代码中使用属性时,不需要指定属性后缀
这两个属性是相同的;可以排除尾随的“属性”: 按照惯例,所有属性名称都以“attribute”一词结尾,以区别于.NET Framework中的其他项。但是,在代码中使用属性时,不需要指定属性后缀
DataContractAttribute.IsReference属性()的默认值为false。DataContractAttribute.IsReference属性()的默认值为false。