3

我有来自现有项目的 CSLA(1.x 框架)对象,我试图在新的 .Net 4.0 项目中使用这些对象。这些对象正在生产中使用,如果没有 2 组对象,我真的无法将它们转换为 2.x 或 EF。

在我的 c# webservice 中(当我尝试运行它时)我收到以下错误:

To be XML serializable, types which inherit from ICollection must
have an implementation of Add(objectname.object) at all levels
of their inheritance hierarchy. objectname.objectList does not
implement Add(objectname.object).

就像我说的,这些对象是用 vb.net 编写的 CSLA 对象。我不知道在哪里看这个。这是 .Net 4.0 试图与 CSLA 1.x 对话的问题,还是 Web 服务问题(因为这些对象最初从未使用过 Web 服务)?

有谁知道我应该在哪里解决这个问题?我是否应该建议转换为 CSLA 2.x?

任何建议表示赞赏!

4

1 回答 1

7

这是一个 XmlSerializer 限制;如果某些东西看起来像一个数据列表,它会希望通过 Add 方法向其中添加项目。

如果您有权访问这些对象,请考虑添加此类方法。我不记得它是否想要 Add(object) vs Add(SomeType) 所以两者都试试。

如果您无法控制这些对象……那就很难了。为对象编写一个新的 DTO 层比尝试以某种方式修补它要快。

于 2010-11-10T19:20:59.267 回答