相关疑难解决方法(0)

WCF [DataContract]设置/获取未执行

我对WCF有点新意,我不认为我完全理解DataContracts的交易.我有这个'RequestArray'类:

[DataContract]
public class RequestArray
{
  private int m_TotalRecords;
  private RequestRecord[] m_Record;

  [System.Xml.Serialization.XmlElement]
  [DataMember]
  public RequestRecord[] Record
  { 
    get { return m_Record; }
  }

  [DataMember]
  public int TotalRecords
  {
    get { return m_TotalRecords; }
    set {
      if (value > 0 && value <= 100) {
        m_TotalRecords = value;
    m_Record = new RequestRecord[value];
    for (int i = 0; i < m_TotalRecords; i++)
      m_Record[i] = new RequestRecord();
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是当客户端说requestArray.TotalRecords=6;Record阵列将被分配和初始化时(我意识到我隐藏了一个分配后面的实现,这是我无法控制的).

问题是当客户端执行此操作时,不会调用TotalRecord的设置代码,服务中的断点也会确认.相反,已经生成了某种通用的setter而是被调用.如何让客户端使用我的setter?

编辑:看起来我并没有完全了解[DataContract]的工作原理,但客户端不会执行此代码是有道理的.就像我在评论中提到的那样,如果我'手动'执行setter的工作,我会看到设置代码在我调用服务函数时正确执行.

序列化我还不确定.RequestRecord []数组的内容不会被转移.Record类有setter/getters,我觉得我需要一个辅助函数来帮助它序列化整个类.

感谢你的帮助!

c# wcf

2
推荐指数
1
解决办法
6728
查看次数

标签 统计

c# ×1

wcf ×1