2

List<String>データメンバーとして持つWCFサービスを作成しました。リストにデータを追加していますが、リストにservice.svcデータが見つかりません。これが私のデータ コントラクト クラスです。

[datacontract]
public class CompositeType
    {
        //here are data members
        public List<String> strlist ;
        [DataMember]
        public List<String> StrList
        {
            get { return strlist; }
            set { strlist = value; }

        }
    }

私のservice.svcで

public void myservice(CompositeType com)
{
 comtype.StrList.add("abc");
 System.IO.File.WriteAllText(@"E:\\for1.txt", comType.StrList[0]);
}

しかし、そのファイルにはデータが見つかりません。私を助けてください。私はたくさん検索しましたが、そのリストメンバーの何が問題なのかを追跡できませんでした。

そして、このサービスを他のアプリで使用しました。

4

1 に答える 1

3

プロパティではなく、バッキング フィールドを DataMember としてマークする必要があります。

[DataContract]
public class CompositeType
    {
        [DataMember]
        public List<String> strlist ;

        public List<String> StrList
        {
            get { return strlist; }
            set { strlist = value; }

        }
    }

// リストあり

[DataContract]
public class CompositeType
    {
        [DataMember]
        public List<String> strlist = new List<String>();

        public List<String> StrList
        {
            get { return strlist; }
            set { strlist = value; }

        }
    }
于 2013-11-14T12:24:52.023 に答える