У меня проблемы с диспетчером ссылок на службы в моем приложении Silverlight, заменяющим методы get и set свойства на общее.
Мой пример: в моей службе есть класс Rule, который имееттри открытых свойства, которые все используют один и тот же закрытый член.
[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 вести себя как класс наСервисная сторона?