我已经创建了 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字段正在获取其值并且客户端对象变为空。
如何解决这个问题?
[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; }
}