0

Android アプリ (Java) から .net 4 WCF Web サービスに xml データの個々の投稿を送信しています。xmlは次のように作成されます

  xmlBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
  xmlBuilder.append("<LogDeviceCommunication
  xmlns=\"http://schemas.datacontract.org/2004/07/conxEntities\">");
  xmlBuilder.append("<DeviceID>").append(DeviceID).append("</DeviceID>");
  xmlBuilder.append("<ID>").append(ID).append("</ID>");
  xmlBuilder.append("<Info>").append(Info).append("</Info>");
  xmlBuilder.append("<Line>").append(Line).append("</Line>");
  xmlBuilder.append("<Tab>").append(Tab).append("</Tab>");
  xmlBuilder.append("<Time>").append(new DateTime(Time).toDateTimeISO()).append
  ("</Time>");
  xmlBuilder.append("</LogDeviceCommunication>");

WCFメソッドは次のとおりです

  [OperationContract]
  [WebInvoke(UriTemplate = "AddDeviceCommunicationLog", RequestFormat = 
  WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, Method = "POST")]
  string AddDeviceCommunicationLog(LogDeviceCommunication deviceCommunicationEntry);

速度を上げるために LogDeviceCommunication のリストを送信するように変更したいのですが、親要素として何を使用すればよいかわかりません。

<parent element>
  <logdevicecommunication>...</logdevicecommunication>
  <logdevicecommunication>...</logdevicecommunication>
  <logdevicecommunication>...</logdevicecommunication>
</parent element>

WCF への呼び出しは、通常、List を ArrayOf.... として返しますが、投稿時には当然、この型は存在しません。メッセージコントラクトなどを作成する必要がありますか?

ありがとう

4

1 に答える 1

1

コレクションのデータ コントラクト タイプが必要なだけです。たとえば、次のようになります。

[CollectionDataContract(Name="WhateverYouWantToCallTheRootElement")]
public class LogDeviceCommunications: Collection<LogDeviceCommunication>  {}

次に、この新しい型の引数を取るように操作メソッドを変更します。

于 2012-09-24T13:12:28.533 に答える