【发布时间】:2015-02-09 16:32:18
【问题描述】:
我有一个简单的数据合约,它有一个相互引用的数据成员,这里是数据成员:
[DataContract(Namespace = "", Name = "ScaleTransactionHeaderMessage")]
public class ScaleTransactionHeaderMessage
{
[DataMember]
public int ScaleTransactionHeaderMessageId { get; set; }
[DataMember]
public string OperatorName { get; set; }
[DataMember]
public string Shift { get; set; }
[DataMember]
public string Source { get; set; }
[DataMember]
public string Destination { get; set; }
**[DataMember]
public List<ScaleTransactionDetailMessage> ScaleTransactionDetailMessages { get; set; }**
}
[DataContract(Namespace = "", Name = "ScaleTransactionDetailMessage")]
public class ScaleTransactionDetailMessage
{
[DataMember]
public int ScaleTransactionDetailMessageId { get; set; }
[DataMember]
public double Tonnage { get; set; }
[DataMember]
public DateTime TransactionDetailDate { get; set; }
**[DataMember]
public ScaleTransactionHeaderMessage scaleTransactionHeaderMessage { get; set; }**
}
这是导致问题的操作
private static ScaleTransactionDetailMessage ConvertTransactionDetail(ScaleTransactionHeaderMessage headerMessage, ScaleTransactionDetail transactionDetail)
{
ScaleTransactionDetailMessage detailMessage = new ScaleTransactionDetailMessage
{
Tonnage = transactionDetail.Tonnage,
TransactionDetailDate = transactionDetail.TransactionDetailDate,
ScaleTransactionDetailMessageId = transactionDetail.TransactionDetailId,
//TODO: Check why this is not working
**scaleTransactionHeaderMessage = headerMessage**
};
return detailMessage;
}
问题是每次我在 ScaleTransactionDetailMessage 数据合同中添加 ScaleTransactionHeaderMessage 时,我总是收到一个错误,提到连接超时,我确定这不是配置问题,因为如果我没有在操作合同中将值添加到 ScaleTransactionHeaderMessage服务可以正常运行。
我对操作进行了单元测试,它工作正常,问题只在调用服务时出现。
数据合约设计是否有错误?
【问题讨论】:
标签: c# wcf datacontract datamember