C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: WCFについて


(過去ログ 122 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■72839 / inTopicNo.1)  WCFについて
  
□投稿者/ ベッカム (1回)-(2014/07/24(Thu) 17:33:28)

分類:[C#] 

いつもお世話になっております。

現在クライアント-サーバシステムで、WCFを使って実装しようと考えていますが、
サーバ側から以下のXMLがきたのですが、レスポンスのデータをうまく取得できません。
#エラーではなく、カウントが0件になっている。

どこに誤りがあるかどなたかご教授して頂けないでしょうか。


【環境】
・クライアント側 C#
・.net framework 4.5
・サーバ java


【XML】
----
<?xml version="1.0" encoding="UTF-8"?>
<ResultList>
<list>
<id>1</id>
<name>test</name>
<remarks>テスト1</remarks>
</list>
<list>
<id>2</id>
<name>test</name>
<remarks>テスト2</remarks>
</list>
・・・省略・・・
</ResultList>
---

【実装】
----
using (ChannelFactory<ISampleWcfService> factory =
new ChannelFactory<ISampleWcfService>("SampleClientEndpoint"))
{
try
{
ISampleWcfService service = factory.CreateChannel();
ResponseList ret = service.sample(request);
↑★上記の変数のカウントをみると0件になってしまう。。。。
factory.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
----

【定義】
----
[DataContract(Namespace = "", Name = "ResultList")]
public class ResponseList
{
[DataMember(Name = "list")]
public List<ResponseParam> list { get; set; }
}

[DataContract]
public class ResponseParam
{
[DataMember(Name = "id")]
public string id { get; set; }
[DataMember(Name = "name")]
public string name { get; set; }
[DataMember(Name = "remarks")]
public string remarks { get; set; }
}

[ServiceContract]
public interface ISampleWcfService
{
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "")]
ResponseList sample(RequestParam param);
}
----

【app.config】
----
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
</startup>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingSettings" transferMode="Buffered" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8080/javaee-sample/restt"
behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="WindowsFormsApplication2.ISampleWcfService"
bindingConfiguration="webHttpBindingSettings"
name="SampleClientEndpoint"/>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
----
引用返信 編集キー/
■72844 / inTopicNo.2)  Re[1]: WCFについて
□投稿者/ ベッカム (2回)-(2014/07/25(Fri) 11:41:37)

自己解決できました。

リストの場合[CollectionDataContract]属性を付与する必要があったらしい。

ご迷惑をおかけしました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -