複雑なデータ型をPerlから.NET WCFに送信しようとしています。 シンプルタイプは正常に動作します。WCF Webサービスがkomplexを埋めていないタイプのSOAPを送信します。
WCFインタフェース:データ型
[DataContract (Name="ServerInfoCollection")]
public class ServerInfoCollection
{
[DataMember]
public string OperatingSystem { get; set; }
[DataMember]
public string OS_Version { get; set; }
[DataMember]
public string OS_Architecture { get; set; }
[DataMember]
public string OS_ServicePack { get; set; }
private long pysicalMem = 0;
[DataMember]
public long PysicalMemory
{
get { return pysicalMem; }
set { pysicalMem = value; }
}
[DataMember]
public List<FileSystem> Filesystems { get; set; }
[DataMember]
public string Manufacturer { get; set; }
[DataMember]
public List<Interface> Interfaces { get; set; }
[DataMember]
public string Model { get; set; }
public ServerInfoCollection()
{
Filesystems = new List<FileSystem>();
Interfaces = new List<Interface>();
}
[DataMember]
public string Hostname { get; set; }
[DataMember]
public string Alias { get; set; }
[DataMember]
public string WindowsDomain { get; set; }
[DataMember]
public string WindowsDomainRole { get; set; }
[DataMember]
public DateTime InstallDate { get; set; }
[DataMember]
public int LogicalProcessors { get; set; }
[DataMember]
public int PhysicalProcessors { get; set; }
[DataMember]
public IPAddress MonitoringIP { get; set; }
}
ソープEnvenloveについては
[ServiceContract]
public interface IWebservice
{
[WebInvoke(RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped)]
[OperationContract]
void PutColledtedData(ServerInfoCollection Serverdata);
}
クラスがサーバーに送信
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<PutColledtedData xmlns="http://tempuri.org/">
<Serverdata>
<OperatingSystem />
<OS_Version>13.1 (Bottle)</OS_Version>
<OS_Architecture>x86_64</OS_Architecture>
<OS_ServicePack>13.1</OS_ServicePack>
<PysicalMemory>6272438272</PysicalMemory>
<Manufacturer>VMWare</Manufacturer>
<Model />
<Hostname>myServerName</Hostname>
<Alias>myServerName</Alias>
<WindowsDomain />
<WindowsDomainRole />
<InstallDate>Thu Nov 27 12:21:33 2014</InstallDate>
<LogicalProcessors>4</LogicalProcessors>
<PhysicalProcessors>4</PhysicalProcessors>
</Serverdata>
</PutColledtedData>
</soap:Body>
</soap:Envelope>
のPerlコード:
Webservice ServerInfoCollectionのObekctが取得されますが、すべてのPropertiesがnullです。
私の勘違いはどこですか?
EDIT: 追加のPerlコード、 追加Webinvokeが
あなたの質問を編集し、あなたのPerlコードを入れてください。あなたが何をしているのかわからないと、何がうまくいかないのかどうかはわかりません。 – simbabque