我有一个现有项目的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吗?
任何建议都表示赞赏!
答案 0 :(得分:6)
这是XmlSerializer限制;如果某些内容看起来像数据列表,则需要通过Add方法向其中添加项目。
如果您有权访问这些对象,请考虑添加此类方法。我不记得它是否想要添加(对象)和添加(SomeType),所以尝试两者。
如果 无法控制这些对象......那将很难。为对象编写新的DTO层比尝试以某种方式修补它更快。