在webservices.netc#中使用可选属性作为参数的自定义对象

本文关键字:参数 对象 自定义 属性 netc# webservices | 更新日期: 2023-09-27 18:19:53

我正在用C#-MVC-.Net 构建一个Web服务

webservice必须返回表的寄存器总数,参数是自定义对象(ViewModel)。

使用SoapUi使用Web服务时,如果没有给出类的所有参数,则会失败

代码:

ViewModel

public class request
{
    public int id {get; set;}
    public string title {get; set;}
    public string description {get; set;}
    public string state {get; set;}
}

网络服务

[WebMethod]
public int getRequest(request req)
{
    // something
}

SoapUi上生成的请求

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
   <soap:Header/>
   <soap:Body>
      <tem:getRequest>
         <!--Optional:-->
         <tem:s>
            <tem:id>?</tem:id>
            <!--Optional:-->
            <tem:title>?</tem:title>
            <!--Optional:-->
            <tem:description>?</tem:description>
            <tem:state>?</tem:state>
         </tem:s>
      </tem:getRequest>
   </soap:Body>
</soap:Envelope>

我可以设置可选和必需的参数?

为什么标签显示为"OPTIONAL"?

谢谢!

在webservices.netc#中使用可选属性作为参数的自定义对象

指定标记名称。我认为问题实际上是标签"tem:s"

    [XmlRoot("s")]
    public class request
    {
        [XmlElement("id")]
        public int id { get; set; }
        [XmlElement("title")]
        public string title { get; set; }
        [XmlElement("description")]
        public string description { get; set; }
        [XmlElement("state")]
        public string state { get; set; }
    }​