我是 WCF 和 C# 的新手。 我正在使用 VS 2010。 我正在尝试实现一项服务,该服务将字符串列表作为输入,处理该列表并根据输入列表返回另一个列表。 当我尝试在命令行客户端中读取输入列表时,我在列表中得到了空项(null)。
我的输入数据是这样的:
<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);
}
请帮忙,欢迎任何指示。
谢谢
最佳答案
现在可以用了,谢谢 Hogan
我在输入 XML 文件中的数据周围缺少 item /item。
<RequestData>
<IDs>
<ID><item>2362</item></ID>
<ID><item>1234</item></ID>
<ID><item>6789</item></ID>
</IDs>
</RequestData>
关于c# - 使用控制台应用程序客户端将输入列表填充到服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633188/