【发布时间】:2014-01-09 21:02:37
【问题描述】:
我正在从 Remoting 转换为 WCF。我的代码进行了很多优化,以最大限度地减少通过网络发送的数据量 - 因此我使用的是 ISerializable。作为升级的一部分,我不想更改为使用内置序列化 - 工作已经完成,所以只想继续使用它。
WCF 将尊重并使用 ISerializable 但是,如果我有一个抽象类“fruit”,它被标记为 ISerializable,然后是具体类 apple、banana 和 pear,当 WCF 尝试反序列化时它会抱怨:
“在ISerializable类型'fruit'中找不到带参数的构造函数(SerializationInfo, StreamingContext)。”
虽然它不需要构造函数!这是一个 abstract 类,这个构造函数只能从子类调用:mybase.new(info,context)。而且我的子类不需要。
为什么要坚持一个永远不会被调用的构造函数?
【问题讨论】: