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

c wcf接收json

阮建安1年前8瀏覽0評論

WCF是一種基于SOAP的通信協議,在.NET Framework中可用于構建面向服務的應用程序。在WCF中,可以使用DataContractSerializer來序列化和反序列化消息。然而,DataContractSerializer對于JSON格式的數據并不友好,因此需要使用JsonSerializer來處理。

接收JSON消息時,我們需要定義一個DataContract類來表示JSON數據的格式。例如,如果我們要接收以下JSON數據:

{
"id": 1,
"name": "John Doe",
"age": 30
}

我們可以定義一個DataContract類如下:

[DataContract]
public class Person
{
[DataMember(Name = "id")]
public int Id { get; set; }
[DataMember(Name = "name")]
public string Name { get; set; }
[DataMember(Name = "age")]
public int Age { get; set; }
}

在WCF服務中,我們可以定義一個接收Person對象的方法,并使用JsonDeserializer來反序列化JSON數據:

[ServiceContract]
public interface IPersonService
{
[OperationContract]
void AddPerson(Person person);
}
public class PersonService : IPersonService
{
public void AddPerson(Person person)
{
// 處理Person對象
}
}
// 在配置文件中配置JsonDeserializer
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="jsonDeserializer" type="System.ServiceModel.Configuration.JsonDeserializerElement, System.ServiceModel.Json"></add>
</behaviorExtensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<jsonDeserializer /> // 配置JsonDeserializer
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

在客戶端調用時,我們可以使用HttpClient或者WebRequest來發送JSON數據:

var person = new Person { Id = 1, Name = "John Doe", Age = 30 };
var json = JsonConvert.SerializeObject(person); // 將Person對象序列化為JSON字符串
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost/PersonService.svc/AddPerson");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}

通過以上方式,我們就可以在WCF服務中接收并處理JSON數據。