WCF REST 参数对象为空

问题描述 投票:0回答:1

我已经创建了 WCF REST API。我已经为API实现了以下服务接口和服务方法。

服务接口:

[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare)]
ObjAPI GetAPIRequest(ObjAPI objAPI)

服务:

public ObjAPI GetAPIRequest(ObjAPI objAPI)
{
   return new ExternalAPI().GetAPIRequest(objAPI);
                
}

ObjAPI
类代码

    [System.Runtime.Serialization.DataContract(Namespace = "")]
    public class ObjAPI
    {
        [System.Runtime.Serialization.DataMember]        
        public int ID { get; set; }   

        [System.Runtime.Serialization.DataMember]
        public Client Client { get; set; }       


    }
}

我的

ObjAPI
包含另一个对象
Client
,然后我已将以下 XML 传递给服务。

<ObjAPI> 
<ID> 1 </ID>
<Client> 
< ClientNumber>0067HA000001</ ClientNumber>
</Client > 
</ ObjAPI >

但是在

GetAPIRequest
方法中,ID字段正在获取其值并且客户端对象变为空。

如何解决这个问题?

c# .net rest wcf
1个回答
1
投票
[ServiceContract]
public interface IInterface
{
    [OperationContract]
    [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare)]
    ObjAPI GetAPIRequest(ObjAPI objAPI)
}

public class Service: IInterface
{
    public ObjAPI GetAPIRequest(ObjAPI objAPI)
    {
       return new ExternalAPI().GetAPIRequest(objAPI);
    }
}

[System.Runtime.Serialization.DataContract(Namespace = "")]
public class ObjAPI
{
    [System.Runtime.Serialization.DataMember]        
    public int ID { get; set; }   

    [System.Runtime.Serialization.DataMember]
    public Client Client { get; set; }       
}

我们还必须为 Client 类设置 DataContract 和 DataMember 属性

[System.Runtime.Serialization.DataContract(Namespace = "")]
public class Client
{
    [System.Runtime.Serialization.DataMember]        
    public string ClientNumber { get; set; }     
}
© www.soinside.com 2019 - 2024. All rights reserved.