3

新しい .Net 4.0 プロジェクトで使用しようとしている既存のプロジェクトの CSLA (1.x フレームワーク) オブジェクトがあります。オブジェクトは本番環境で使用されており、オブジェクトのセットが 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 オブジェクトです。これはどこを見ればいいのかわからない。CSLA 1.x と通信しようとする .Net 4.0 の問題ですか、それとも Web サービスの問題ですか (これらのオブジェクトは元々 Web サービスを使用していないため)。

この問題を解決するためにどこを見ればよいか、誰かが考えていますか? CSLA 2.x への変換を提案する必要がありますか?

どんな提案でも大歓迎です!

4

1 に答える 1

7

これはXmlSerializerの制限です。何かがデータのリストのように見える場合は、Addメソッドを介してアイテムを追加する必要があります。

これらのオブジェクトにアクセスできる場合は、そのようなメソッドを追加することを検討してください。Add(object)とAdd(SomeType)のどちらが必要か思い出せないので、両方を試してください。

あなたがそれらのオブジェクトを制御できない場合...それは難しいでしょう。なんらかの方法でパッチを適用するよりも、オブジェクトの新しいDTOレイヤーを作成する方が高速です。

于 2010-11-10T19:20:59.267 に答える