2010-11-10 50 views
2

我有里昂证券(1.x的框架)从现有的项目,我想在一个新的.NET 4.0的项目中使用的对象。对象正在生产中使用,我实际上无法将它们转换为2.x或EF而没有2组对象。要XML序列化,其自ICollection继承的类型必须添加的实现

在我的C#web服务(当我尝试运行它)我收到以下错误:

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?

任何建议都感激!

回答

5

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

如果您有机会获得这些对象,可以考虑加入这样的方法。我不记得是否要添加(对象)与添加(SomeType),所以试试这两个。

如果你不要有控制这些对象......这将是艰难的。为对象编写一个新的DTO层会比尝试以某种方式修补它更快。

+0

谢谢您的回答...... DTO代表什么?但是,我确实控制了这些对象,它们也被用于另一个项目,这意味着我将不得不在这种类型的变更中包含更多的人。所以,你的DTO选项是耐人寻味... – webdad3 2010-11-10 19:23:37

+0

@Jeff - 数据传输对象 - 即一组类*专为*系列化 – 2010-11-10 21:35:28

+0

的目的@Jeff - 但在这种情况下,它听起来像你应该能够只需添加缺少的'Add'? – 2010-11-10 21:35:53

相关问题