knackCoder Ответов: 1

Хорошая практика для возврата JSON из operationcontract в WCF


У меня есть operationContract в WCF, возвращаемым типом которого является объект, и мне нужно отправить этот объект в формате JSON пользователю. Теперь я столкнулся с двумя способами возврата данных JSON из моего метода. Пожалуйста, предложите, какую из них следует принять?; обеспечивает ли сериализация модели, выполненная вторым способом, какие-либо дополнительные преимущества?

Что я уже пробовал:

Два способа возврата данных JSON из моего OperationContract заключаются в следующем:-
1)
[OperationContract]
        [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
        public Model1 GetData(string Id1, string Id2)
        {
            try
            {
                Model1 objModel  = new Model1();
                DataSet ds = new DataSet();
                BAL objBAL = new BAL();
                objModel  = objBAL.GetData(Id1, Id2);
                return objModel  
            }
            catch (FaultException ex)
            {
                // error handling code here
            }
        }



2)
 [OperationContract]
        [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
        public string GetData(string Id1, string Id2)
        {
            try
            {
                string json = string.Empty;
                Model1 objModel  = new Model1();
                DataSet ds = new DataSet();
                BAL objBAL = new BAL();
                objModel  = objBAL.GetData(Id1, Id2);
                json = new JavaScriptSerializer().Serialize(objModel);
                return json;
            }
            catch (FaultException ex)
            {
                // error handling code here
            }
        }

1 Ответов

Рейтинг:
7

Richard Deeming

Первый вариант вернет JSON-кодированное представление результата.

Второй вариант возвращает строку в кодировке JSON, содержащую представление результата в кодировке JSON.

Помимо дополнительной работы, связанной с сервером для JSON-кодирования результата дважды, второй вариант также потребует дополнительной работы на принимающей стороне.