0

WCF REST で DataContractSerializer を使用する方法がわかりません。

次のようなチャネル ファクトリを使用しています。

 Uri uri = new Uri("http://localhost:50000/people");
        WebChannelFactory<IPersonService> chFactory = new WebChannelFactory<IPersonService>(uri);

 IPersonService iPerson = chFactory.CreateChannel();

このようにチャネルから直接チャネルメソッドを呼び出すことができます

 List<Person> allPeople = new List<Person>();
 allPeople = iPerson.getAll();

これには、DataContractSerializer の使用方法に関するこれまでの内容が含まれているため、応答を出力できます。

MemoryStream stream = new MemoryStream();
<--------------- how to i read iPerson.getAll() into stream? --------->                        
XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(stream, new XmlDictionaryReaderQuotas());
DataContractSerializer dcs = new DataContractSerializer(typeof(Person));
List<Person> allpeople2 = (List<Person>)dcs.ReadObject(reader, true);
reader.Close();
stream.Close();

これらのピースを組み合わせてすべてを機能させる方法が正確にはわかりません。

4

1 に答える 1

1

少し複雑にしていると思います...

この紹介ページに従って新しいプロジェクトを開始します: http://msdn.microsoft.com/en-us/magazine/dd315413.aspx

web.config でシリアライゼーションの問題を構成するときは、インターフェース/クラスで属性を宣言するだけでよく、オブジェクトのシリアライズ/デシリアライズ コードを 1 行も書く必要はありません (カスタマイズされたシリアライゼーションを取得する必要がない限り)。あなたの場合は必要ありません)

「http://localhost:50000/people」で提供された URL から、RESTful サービスを探していると仮定したので、さらに高度な機能が必要な場合に備えて、https://github. com/mikeobrien/WcfRestContrib

于 2012-06-03T21:53:35.723 に答える