我有一个对象,我们称之为UnSerializableObject,我不能改变我需要序列化。所以我创建了自己的SerializableObject对象,它是可序列化的,并包含与原始对象相同的所有数据。这看起来是这样的:WCF序列化类型不匹配
namespace test
[Serializable]
class SerializableObject
{
private int item1;
public int Item1
{
get;
set;
}
public SerializableObject()
{}
}
然后,我创建了另一个类,转换和从SerializableObject和UnSerializableObject。 在服务方面一切正常。服务中的方法将SerializableObject作为参数,并将其转换为UnSerializableObject。问题出在客户端。我使用svcutil来创建客户端代码。然后我将一个Object转换为一个SerializableObject并在服务调用中使用SerializableObject。就像这样:
TTSServiceClient aClient = new TTSServiceClient();
UnSerializableObject loMMessage = new MostMessage();
SerializableObject loSMMessage = ObjectConverter.ToSerializableObject(loMMessage);
aClient.Allocate_OnStartResultAck(loSMMessage);
当我编译客户我得到的错误:
错误59参数 '1':无法从“test.Utilities.SerializableObject [C转换:\项目\客户\客户端\ test.Utilities.dll]”到 'test.Utilities.SerializableObject [C:\项目\客户\客户\ Service.cs(19)]'
为什么会出现这种情况?我该如何解决它?有没有更好的方法来处理这个问题?
你可以发布ObjectConverter.ToSerializableObject方法的原型吗? – 2010-08-26 13:55:23
我已经添加了。有更多的属性,但基本上这是。 – scott 2010-08-26 14:34:47