这个问题基本上是另一个问题的变体: WCF service not returning changed object
在我的应用程序中,我创建了一个服务包装器对象,它包装要更新的对象。 然而,奇怪的是,只有原始数据类型在对象内得到更新。我试图寻找解决这个问题的方法,到目前为止还没有取得任何成功。
更新: 以下是我打电话的服务代码:
public ServiceWrapper initialize ( Datamember var, MSGOBJ[] msgobj, StringBuilder paction, Transfer_[] transferObj )
由于我想更新传递的params(它们是对象),我将它们的所有类型封装到ServiceWrapper类中(使用getter和ampter)并返回一个填充的实例。
public class ServiceWrapper
{
public MSGOBJ[] Msgobj { get; set; }
public StringBuilder paction { get; set; }
public StringBuilder Mode { get; set; }
... other members
}
返回服务称为
void client_initializeCompleted(Object sender, initializeCompletedEventArgs e)
我通过e.Result访问返回的对象。 但是,在对象内部有基元(例如,MSGOBJ具有整数变量messageCount),它们正在更新(并作为结果对象传递)。但是StringBuilder或任何自定义对象之类的对象类型都没有得到更新。