我是WCF和C#的新手。 我正在使用VS 2010。 我正在尝试实现一个服务,该服务将字符串列表作为输入,处理列表并根据输入列表返回另一个列表。 当我尝试在命令行客户端中读取输入列表时,我在列表中得到空项(空值)。
我的输入数据如下所示:
<RequestData>
<IDs>
<ID>2362</ID>
<ID>1234</ID>
<ID>6789</ID>
</IDs>
</RequestData>
我的RequestData定义是:
namespace RestService
{
[DataContract(Namespace = "http://www.myNameSpace.co.il/REST")]
public class RequestData
{
[DataMember]
public List<ID> IDs = new List<ID>();
}
[DataContract(Namespace = "http://www.myNameSpace.co.il/REST")]
public class ID
{
[DataMember]
public string item { get; set; }
}
}
生成的代理代码是:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="RequestData", Namespace="http://www.myNameSpace.co.il/REST")]
public partial class RequestData : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private www.myNameSpace.co.il.REST.ID[] IDsField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public www.myNameSpace.co.il.REST.ID[] IDs
{
get
{
return this.IDsField;
}
set
{
this.IDsField = value;
}
}
}
客户代码:
RequestData req = new RequestData();
try
{
XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(req.GetType());
using (StreamReader sr = new StreamReader(".\\..\\..\\PostData.xml"))
{
req = (RequestData) serializer.Deserialize(sr);
}
ResponseData res = (ResponseData)client.Enrich(req);
}
catch (Exception ex)
{
Debug.WriteLine("Error message is : {0} ", ex.Message);
}
请帮助,欢迎任何指示。
日Thnx
答案 0 :(得分:0)
现在有效,谢谢Hogan
我在输入XML文件中的数据周围缺少 item / item 。
<RequestData>
<IDs>
<ID><item>2362</item></ID>
<ID><item>1234</item></ID>
<ID><item>6789</item></ID>
</IDs>
</RequestData>