2012-01-20 71 views
0

我在Silverlight應用程序中的服務引用管理器出現問題,用通用屬性替換屬性的get和set方法。服務沒有實現屬性的獲取/設置方法

我的例子:我有一個規則類在我的服務有三個公共屬性,都使用相同的私有成員。

[DataContract] 
public class RulesReadable 
{ 
    [DataMember] 
    private bool? m_passed; 

    ... 

    [DataMember] 
    public bool? State 
    { 
     get { return m_passed; } 
     set { m_passed = value; } 
    } 

    [DataMember] 
    public bool HasPassed 
    { 
     get { return (m_passed == true) ? true : false; } 
     set { m_passed = value; } 
    } 

    [DataMember] 
    public bool HasFailed 
    { 
     get { return (m_passed == false) ? true : false; } 
     set { m_passed = !value; } 
    } 
} 

當我調用服務,得到這個數據型背,並嘗試獲取/設置我發現,每個屬性被賦予的,而不是共享三者之間一個自己的變量屬性。如果我去的類定義的Silverlight的身邊,我看到,其實這是發生了什麼事:

[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 
[System.Runtime.Serialization.DataContractAttribute(Name="Manager.RulesReadable", Namespace="http://schemas.datacontract.org/2004/07/MyWebApp.Services")] 
public partial class ManagerRulesReadable : object, System.ComponentModel.INotifyPropertyChanged { 

    private bool HasFailedField; 

    ... 

    [System.Runtime.Serialization.DataMemberAttribute()] 
    public bool HasFailed { 
     get { 
      return this.HasFailedField; 
     } 
     set { 
      if ((this.HasFailedField.Equals(value) != true)) { 
       this.HasFailedField = value; 
       this.RaisePropertyChanged("HasFailed"); 
      } 
     } 
    } 

    ... 

} 

如何獲得在Silverlight的一側類表現得像在服務端類?

回答

0

首先添加這些類作爲對Silverlight項目的引用的程序集。創建服務引用時,請選中「引用程序集中的重用類型」複選框,並重新使用所有引用的程序集,或選取要重新使用的特定程序集。直接由服務引用的程序集(以及任何依賴項)也將成爲Silverlight應用程序的一部分。

+0

我看過它,並且「已在所有引用的程序集中重用類型」已被選中。 – tehDorf

+0

是否檢查過上面所有引用程序集中的「重用類型」?您可能需要刪除並重新添加引用以使用引用的程序集重建它。請注意,名稱空間可能會更改,因此您必須進入並修改用法。 –

+0

好吧,我不知道我是像你說的那樣將程序集添加到我的Silverlight項目中。我得到的最接近的是添加一個代碼文件作爲鏈接,因爲我不認爲我可以將非Silverlight程序集添加到Silverlight項目(http://forums.silverlight.net/post/150999.aspx)。在鏈接文件後,我刪除並在Silverlight中重新創建了我的ServiceReference,但我仍然遇到同樣的問題。 – tehDorf

-1

請勿使用服務引用。他們是邪惡的。如果你谷歌「Silverlight WCF沒有服務參考」,你會發現幾個很好的教程。

+0

任何關心評論的投票? – cadrell0

相關問題