我创建了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字段获取其值并且客户端对象变为null。
如何解决此问题?
谢谢......。
答案 0 :(得分:0)
[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; }
}