我在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的一側類表現得像在服務端類?
我看過它,並且「已在所有引用的程序集中重用類型」已被選中。 – tehDorf
是否檢查過上面所有引用程序集中的「重用類型」?您可能需要刪除並重新添加引用以使用引用的程序集重建它。請注意,名稱空間可能會更改,因此您必須進入並修改用法。 –
好吧,我不知道我是像你說的那樣將程序集添加到我的Silverlight項目中。我得到的最接近的是添加一個代碼文件作爲鏈接,因爲我不認爲我可以將非Silverlight程序集添加到Silverlight項目(http://forums.silverlight.net/post/150999.aspx)。在鏈接文件後,我刪除並在Silverlight中重新創建了我的ServiceReference,但我仍然遇到同樣的問題。 – tehDorf