使用控制台应用程序客户端向服务填充输入列表
本文关键字:服务 填充 输入 列表 客户端 控制台 应用程序 | 更新日期: 2023-09-27 18:18:44
我是WCF和c#的新手。我使用VS 2010。我正在尝试实现一个服务,该服务将字符串列表作为输入,处理列表并根据输入列表返回另一个列表。当我尝试在命令行客户端读取输入列表时,我在列表中得到空项(nulls)。
我的输入数据看起来像这样:
<RequestData>
<IDs>
<ID>2362</ID>
<ID>1234</ID>
<ID>6789</ID>
</IDs>
</RequestData>
my 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);
}
请帮忙,欢迎指教。
感谢
现在可以运行了,谢谢Hogan
我在输入XML文件中丢失了item/item。
<RequestData>
<IDs>
<ID><item>2362</item></ID>
<ID><item>1234</item></ID>
<ID><item>6789</item></ID>
</IDs>
</RequestData>