2011-11-12 55 views
0

我想寫一個WCF Web服務,它將以JSON的形式返回我的數據,所以我可以從某些客戶端腳本調用它。[DataContractAttribute(IsReference = true)]和[DataContract]之間的區別是什麼?

我知道我需要裝飾我想從網絡方法返回的[DataContract]屬性中的任何類,然後是[DataMember]中的任何成員。考慮到我想返回實體類型,所以我去了實體ObjectContext類。

然而,當我看着.edmx文件,我可以看到的是,類已裝飾,像這樣......

[EdmEntityTypeAttribute(NamespaceName="PteDotNetModel", Name="AssocFile")] 
[Serializable()] 
[DataContractAttribute(IsReference=true)] 
public partial class AssocFile : EntityObject 

當我再嘗試,並添加[DataContract]我得到一個錯誤說我不能有重複的屬性。我很困惑,雖然他們是相似的,他們明顯不同不是嗎?

我的問題的第二部分是我如何通過WCF服務返回實體類型?

回答

4

這兩個屬性是相同的;可以排除尾隨「屬性」From MSDN

按照慣例,所有屬性名都以單詞「屬性」結尾,以區別於.NET Framework中的其他項目。但是,在代碼中使用屬性時,不需要指定屬性後綴。

+1

而且DataContractAttribute.IsReference屬性(http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datacontractattribute.isreference.aspx)的默認值爲false。 –

相關問題