意外类型java_意外类型 - 序列化异常

我有一个WCF服务 .

正常操作会看到服务器正在进行一些处理,通过回调将填充的XactTaskIn对象返回给客户端 . 我有这个工作正常 .

我的问题是,当我尝试将returnData变量设置为填充的XactException并尝试通过回调将XactTaskIn发送回客户端时,我会抛出以下异常 .

异常 - “数据协定名为'XactException:http://schemas.datacontract.org/2004/07/'的类型'XactException'不是预期的 . 考虑使用DataContractResolver或将已知静态未知的任何类型添加到已知列表中types - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中 . “ (System.Runtime.Serialization.SerializationException)异常消息=“类型'XactException',数据协定名称为'XactException:http://schemas.datacontract.org/2004/07/'不是预期的 . 考虑使用DataContractResolver或添加任何静态地知道已知类型列表的类型 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表 . “,Exception Type =”System.Runtime.Serialization.SerializationException“

这是XactTaskIn类

[DataContract]

public class XactTaskIn

{

[DataMember]

public DateTime timeOut;

[DataMember]

public DateTime timeIn;

[DataMember]

public string name;

[DataMember]

public string responseTo;

[DataMember]

public String moduleFromName;

[DataMember]

public String moduleFromType;

[DataMember]

public String methodFromName;

[DataMember]

public object[] originalInputs;

[DataMember]

public String returnMethodToCall;

[DataMember]

public String returnModuleToCall;

[DataMember]

public object returnData;

public XactTaskIn(DateTime timeOut, DateTime timeIn, string name, string responseTo, String moduleFromName, String moduleFromType, String methodFromName, object[] originalInputs, String returnMethodToCall, String returnModuleToCall, object returnData)

{

this.timeOut = timeOut;

this.timeIn = timeIn;

this.name = name;

this.responseTo = responseTo;

this.moduleFromName = moduleFromName;

this.moduleFromType = moduleFromType;

this.methodFromName = methodFromName;

this.originalInputs = originalInputs;

this.returnMethodToCall = returnMethodToCall;

this.returnModuleToCall = returnModuleToCall;

this.returnData = returnData;

}

}

这是XactException类:

[DataContract]

public class XactException

{

[DataMember]

string message;

public XactException(string message)

{

this.message = message;

// Add implementation.

}

}

Update:

好的,丹尼尔的评论帮助了我 .

它现在看起来像服务器正在向客户端发送回调,但客户端抛出以下异常 .

grab :“格式化程序在尝试反序列化消息时抛出了异常:尝试反序列化参数http://tempuri.org/:taskIn时出错.InstallException消息是'第1行位置错误960.元素' http://schemas.datacontract.org/2004/07/:returnData'包含映射到名称'http://schemas.datacontract.org/2004/07/:XactException'的类型的数据 . 反序列化器没有任何映射到此名称的类型的知识 . 考虑使用DataContractResolver或将与“XactException”对应的类型添加到已知类型的列表中 - 例如,通过使用KnownTypeAttribute属性或将其添加到传递给已知类型的列表中DataContractSerializer . ' . 有关详细信息,请参阅InnerException . “ (System.ServiceModel.Dispatcher.NetDispatcherFaultException)异常消息=“格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:taskIn时出错.InstallException消息是'第1行位置错误960.元素'http://schemas.datacontract.org/2004/07/:returnData'包含映射到名称'http://schemas.datacontract.org/2004/07的类型的数据/:XactException' . 反序列化器不知道任何映射到此名称的类型 . 考虑使用DataContractResolver或将与“XactException”对应的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或通过添加它到传递给DataContractSerializer的已知类型列表 . ' . 请参阅InnerException以获取更多详细信息 . “,Exception Type =”System.ServiceModel.Dispatcher.NetDispatcherFaultException“

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值