1

これらのクラスを公開する WCF Web サービスがあります。

  [DataContract]
    public class TemplatesFormat
    {        
        List<DynAttribute> _dynsattributes = new List<DynAttribute>();

        [DataMember]
        public List<DynAttribute> DynsAttributes
        {
            get { return _dynsattributes; }
            set { _dynsattributes = value; }
        }
    }

    [DataContract]
    public class DynAttribute
    {
        string _key = "";
        string _val = "";
        [DataMember]
        public string Key
        {
            get { return _key; }
            set { _key = value; }
        }
        [DataMember]
        public string Value
        {
            get { return _val; }
            set { _val = value; }
        }
    }

基本的に2クラス。DynAttribute クラスの List である属性を持つ、2 つの文字列属性と TemplatesFormat を持つ DynAttribute。ここまでは順調ですね。

しかし、ASP.NET Web ページから Web サービスを参照して TemplatesFormat を使用しようとすると、List 属性が表示されません。

つまり、実際に「見る」のですが、リストではなく (「Add()」が含まれていません)、使い方がわかりません。

de [DataContrat] に関連する何かが欠けていると思いますが、それがカスタム型であるという事実は、DynAttribute クラスには同じ問題がないためです (文字列であるため Key 属性と Value 属性が表示されます)。リストに当てはまらない…

何か案が???

4

2 に答える 2

1

wcf サービスへの参照を追加するときは、コレクション タイプをジェネリック リストに変更する必要があります。詳細とスニップ画像については、私の投稿wcf-proxy-returning-array-instead-of-list-even-through-collection-type-genericを参照してください。

于 2012-12-21T22:01:56.783 に答える
1

WCF は、他の多くのプラットフォームによる使用をサポートすることを目的としています。はプリミティブ型ではないためList<DynAttribute>、 に変換されている可能性がありDynAttribute[]ます。

消費するアプリケーションで。変数を取得して、期待どおり.ToList()に戻すことができるかどうかを確認してください。List<DynAttribute>

于 2012-12-21T21:56:30.893 に答える