c# - 使用控制台应用程序客户端将输入列表填充到服务

标签 c# wcf .net-4.0

我是 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/

相关文章:

c# - 使用 Asp.Net MVC 和 SignalR 创建可更新的项目列表

c# - 设置精度c#

.net - 导致 .net WCF 客户端使用 RPC/encoded 而不是 Document/Literal/Wrapped with Delphi 服务

c# - WCF 错误 - 安全处理器无法在消息中找到安全 header

c# - 我应该将一个任务包装在另一个任务中还是应该只返回创建的任务?

c# - 不可打印字符的序列化

c# - 在 Windows 系统上使用 Path.Combine() 形成 Linux 路径

c# - UI 不更新 ExpandoObject 列表

ios - Apache Cordova 错误将裁剪后的图像从 IOS 上传到服务器

c# - VS2010/C# 中的全局 "using"指令?