【问题标题】:How to get XML output from a WCF Service如何从 WCF 服务获取 XML 输出
【发布时间】:2016-09-14 12:49:30
【问题描述】:

我想获得以下给定的 xml 作为 WCF 服务的输出。

<?xml version="1.0" encoding="UTF-8"?>
<payloads>
    <payload>
        <firstname>Sid</firstname>
        <secondname>Singh</secondname>
        <number>1</number>
    </payload>
    <payload>
        <firstname>Deepak</firstname>
        <secondname>Shahi</secondname>
        <number>2</number>
    </payload>
    <payload>
        <firstname>Shorya</firstname>
        <secondname>Garg</secondname>
        <number>3</number>
    </payload>
</payloads>

下面是我的 WCF 服务合同和数据合同:-

[ServiceContract]
public interface IService1
{
    [OperationContract]
    Payload Payloads(Payload Payload);
}

[DataContract(Name = "Payload")]
public class Payload
{
    public string _firstname;
    public string _secondname;
    public string _number;

    [DataMember(Name = "firstname")]
    public string firstname
    {
        get { return _firstname; }
        set { _firstname = value; }
    }

    [DataMember(Name = "secondname")]
    public string secondname
    {
        get { return _secondname; }
        set { _secondname = value; }
    }

    [DataMember(Name = "number")]
    public string number
    {
        get { return _number; }
        set { _number = value; }
    }

}

下面是我的班级:-

public class Service1 : IService1
    {
        public Payload Payloads(Payload Payload)
        {
            if (Payload == null)
            {
                throw new ArgumentNullException("Payload");
            }
            return Payload;
        }
    }

使用我的 WCF,我没有像上面给出的 XML 那样得到我想要的输出。请帮忙。在此先感谢:)

【问题讨论】:

    标签: c# xml wcf


    【解决方案1】:

    你的模型

    [XmlRoot(ElementName="payload")]
        public class Payload {
            [XmlElement(ElementName="firstname")]
            public string Firstname { get; set; }
            [XmlElement(ElementName="secondname")]
            public string Secondname { get; set; }
            [XmlElement(ElementName="number")]
            public string Number { get; set; }
        }
    
        [XmlRoot(ElementName="payloads")]
        public class Payloads {
            [XmlElement(ElementName="payload")]
            public List<Payload> Payload { get; set; }
        }
    

    IServ

     [OperationContract]
                  [WebInvoke(Method = "GET",
                      ResponseFormat = WebMessageFormat.Xml,
                      BodyStyle = WebMessageBodyStyle.Bare,
                      UriTemplate = "GetPay")]
                  Payload GetPay();
    

    服务

     public Payload GetPay()
                {
                    return new Payload();
                }
    

    经过测试和工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 2014-10-08
      • 2013-11-27
      • 1970-01-01
      相关资源
      最近更新 更多