使用控制台应用程序客户端向服务填充输入列表

本文关键字:服务 填充 输入 列表 客户端 控制台 应用程序 | 更新日期: 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>