1

私は非常に奇妙な問題を抱えています。私は動作しているWCFサービスを持っています。

[ServiceContract]
public interface IService
{
    [OperationContract]
    int AddResult(int result, string name);

    [OperationContract]        
    int list(int count);
}

別のクラスには、このサービスの実装があります。そして、それは機能します。しかし、メソッド「リスト」を次のように変更すると:

[ServiceContract]
public interface IService
{
    [OperationContract]
    int AddResult(int result, string name);

    [OperationContract]        
    List<string> list(int count);        
}

ターゲット プロジェクト (Windows Phone アプリケーション) からサービス参照を追加すると、いくつかのエラーと警告が表示されます。それらの重要なアイデアは、サービスをロードできない (またはエンドポイントをロードできない) ことです。2 つのメソッドの違いは非常に小さく、int 型ではなくリストです。しかし、それは非常に重要です。なぜそうなのですか?リストを使用できないのはなぜですか?

4

1 に答える 1

1

List コレクションをプロキシ クラスにカプセル化しようとしましたか? 次のようなものを試すことができます:

[DataContract]
public class MyData
{
    [DataMember]
    public List<string> list { get; set; }
}

[ServiceContract]
public interface IService
{
    [OperationContract]
    int AddResult(int result, string name);

    [OperationContract]        
    MyData list(int count);        
}

また、このリンクを見てください。あなたが探しているものかもしれないと思います。

アップデート

このスレッドのコメント セクションで説明されているように、問題は WCF サービス自体にあるのではなく、@ user1460819 Windows Phone アプリで生成されたクライアントにあります。

この問題は、WCF サービス バインディングが「basicHttpBinding」に変更され、クライアント側の WCF 参照が再生成され、プロジェクト全体が再構築された後に解決されました。

于 2012-06-18T18:19:48.233 に答える