色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c wcf json對(duì)象

在C#開發(fā)中,WCF是非常常用的一種Web Service框架。而在進(jìn)行Web Service的數(shù)據(jù)交互時(shí),JSON是一種非常常見的數(shù)據(jù)格式。通過WCF和JSON,我們可以非常方便地實(shí)現(xiàn)跨平臺(tái)、跨語言的數(shù)據(jù)交互。本文主要介紹在WCF中如何處理JSON對(duì)象。

[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
[ServiceContract]
public interface IPersonService
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "GetPerson", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Person GetPerson(Person person);
}

在上面的代碼中,我們定義了一個(gè)Person類,并在服務(wù)契約接口IPersonService中定義了一個(gè)GetPerson方法,該方法接收一個(gè)Person對(duì)象,并將其作為Json格式的參數(shù)進(jìn)行POST請(qǐng)求,并返回一個(gè)Person對(duì)象。

{"uri":"http://localhost:8080/PersonService.svc/GetPerson", "requestBody":{"Name":"Tom", "Age":18}}

在客戶端調(diào)用該服務(wù)的過程中,我們需要將Person對(duì)象轉(zhuǎn)換為JSON格式的數(shù)據(jù),并將其作為請(qǐng)求參數(shù)進(jìn)行傳輸。比如,通過HttpWebRequest進(jìn)行請(qǐng)求:

Person person = new Person() { Name = "Tom", Age = 18 };
string url = "http://localhost:8080/PersonService.svc/GetPerson";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
string postData = "{\"Name\":\"" + person.Name + "\",\"Age\":" + person.Age + "}";
byte[] data = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/json";
request.ContentLength = data.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
string content;
using (WebResponse response = request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
content = reader.ReadToEnd();
}
Person result = JsonConvert.DeserializeObject(content);

在客戶端將請(qǐng)求結(jié)果反序列化時(shí),我們需要使用JsonConvert類提供的方法將JSON格式的數(shù)據(jù)轉(zhuǎn)換為對(duì)應(yīng)類型的對(duì)象。

通過WCF和JSON,我們可以非常方便地實(shí)現(xiàn)跨平臺(tái)、跨語言的數(shù)據(jù)交互。在開發(fā)過程中,需要注意序列化和反序列化的方式,以及參數(shù)和返回值的定義。