3

次のような WCF サービス (.svc) であるプロジェクトがあります。

[ServiceContract]
public interface IAdminQueries
{

    [OperationContract]
    List<Color> GetColors();

    [OperationContract]
    List<PhoneType> GetPhoneTypes();

    ...

Web アプリケーションである別のプロジェクトがあります。上記のサービスにサービス参照を追加します。[詳細] ボタンをクリックし、[コレクション タイプ] から [Generic.List] を選択します。すべてが本来あるべきように見えます。

次に、以下のコードをビルドしてエラーを取得します。

    AdminQueriesClient db = new AdminQueriesClient();
    List<Color> s = db.GetColors();

エラーは次のとおりです。

    Cannot implicitly convert type 'DogLicenseBO.DogLicenseServiceReference.Color[]' to 'System.Collections.Generic.List<DogLicenseBO.DogLicenseServiceReference.Color>'

何かが通常のシリアライゼーション/デシリアライゼーション プロセスをブロックまたはオーバーライドしていませんか?

編集 私はそれを再び機能させました。しかし、私は私が取り出したものが必要だと思います。

修正 これはすべて、VS 2012 プロジェクトを VS 2010 に変換する必要があるために始まりました。使用していた多くの優れた機能をダウングレードする必要があります。とにかく、VS 2012 のリファレンスの 1 つは Newtonsoft.Json です。私はそれをいくつかの場所で使用しています。VS 2010 でそれを取り出して再構築すると、すべてが機能しました。Newtonsoft の代わりに Json シリアライゼーションに使用できるものを確認するために、さらにテストが必要です。

助言がありますか?

4

2 に答える 2

1

答えは、修正と呼ばれる編集の後に私の元の投稿に掲載されています。でも、ここにも投稿するかもしれません。

これはすべて、VS 2012 プロジェクトを VS 2010 に変換する必要があるために始まりました。使用していた多くの優れた機能をダウングレードする必要があります。とにかく、VS 2012 のリファレンスの 1 つは Newtonsoft.Json です。私はそれをいくつかの場所で使用しています。VS 2010 でそれを取り出して再構築すると、すべてが機能しました。Newtonsoft の代わりに Json シリアライゼーションに使用できるものを確認するために、さらにテストが必要です。

于 2012-11-14T21:24:25.437 に答える
0

サービス参照を追加したクライアントで、サービス参照を右クリックし、[サービス参照の構成] を選択します。データ型のセクションの下に、コレクション型の「System.Array」がリストされているはずです (これは、非 .NET クライアントとの互換性)。この領域では、デフォルトで配列の代わりに一般的なリストを発行するように変更できます。

于 2012-11-08T21:30:20.880 に答える