我的Wcf服務有以下接口;Wcf服務如何以同樣的方法返回不同的對象
[ServiceContract]
public interface IService
{
[OperationContract]
[XmlSerializerFormat]
[WebInvoke(Method = "POST", UriTemplate = "/GetTypes", BodyStyle = WebMessageBodyStyle.Bare)]
object GetTypes(RequestObject RequestObject);
}
我的服務看起來像這樣;
public class Service : IService
{
public static GetTypes(RequestObject RequestObject)
{
if(RequestObject.Validate)
{
//create a new response obj, and return it
ResponseObj oResponseObj = new ResponseObj();
//get some data from data source and populate object, then return it
return oResponseObj;
}
else
{
//error response
ErrorResponseObj oErrorResponseObj = new ErrorResponseObj();
oErrorResponseObj.ErrorId = 1;
oErrorResponseObj.ErrorMessage = "There was a error";
return oErrorResponseObj;
}
}
}
我響應對象
[DataContract]
public class ResponseObj
{
[DataMember]
public int Id {get;set;}
[DataMember]
public List<string> Names {get;set;}
}
我也有喜歡
[DataContract]
public class ErrorResponseObj
{
[DataMember]
public int ErrorId {get;set;}
[DataMember]
public string ErrorMessage {get;set;}
[DataMember]
public string MessageImportance {get;set;}
}
如何最好的,我應該回到這些不同對象的WCF方法的錯誤響應。我應該返回類型對象嗎?或者有更好的選擇,或者這是正確的方法。
我已經更新我的問題,以反映這一點。 – Tommassiov
我已經更新了我的答案:) –
有沒有更好的選擇,或者是正常的做法... – Tommassiov