我有一个简单的数据合约,它有一个相互引用的数据成员,这里是数据成员:
[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合同服务可以正常运行。
我有单元测试操作并且它正常工作,只有在调用服务时才会出现问题。
数据合同设计是否有任何错误?