替换WCF默认序列化方式
創(chuàng)建類 :
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.ServiceModel.Description;
using?System.Xml;
using?System.Runtime.Serialization;
namespace?Kingge.Mini.Network
{
public?class?NetDataContractSerializerOperationBehavior:DataContractSerializerOperationBehavior
{
????????public?NetDataContractSerializerOperationBehavior(OperationDescription?operationDescription)
????????????:?base(operationDescription)
????????{
????????}
????????public?override?XmlObjectSerializer?CreateSerializer(Type?type,?string?name,?string?ns,?IList<Type>?knownTypes)
????????{
????????????return?new?NetDataContractSerializer(name,ns);
????????}
????????public?override?XmlObjectSerializer?CreateSerializer(Type?type,?XmlDictionaryString?name,?XmlDictionaryString?ns,?IList<Type>?knownTypes)
????????{
????????????return?new?NetDataContractSerializer(name,?ns);
????????}
????}
}
客戶端:
????????????using?(ChannelFactory<T>?factory?=?new?ChannelFactory<T>(binding,adress))
????????????{
????????????????foreach?(OperationDescription?op?in?factory.Endpoint.Contract.Operations)
????????????????{
????????????????????op.Behaviors.Remove<DataContractSerializerOperationBehavior>();
????????????????????op.Behaviors.Add(new?NetDataContractSerializerOperationBehavior(op));
????????????????}
????????????????...... // do something
????????????}
服務(wù)端:
????????????using?(ServiceHost?host?=?new?ServiceHost(obj))
????????????{
????????????????foreach?(ServiceEndpoint?ep?in?host.Description.Endpoints)
????????????????{
????????????????????foreach?(OperationDescription?op?in?ep.Contract.Operations)
????????????????????{
????????????????????????op.Behaviors.Remove<DataContractSerializerOperationBehavior>();
????????????????????????op.Behaviors.Add(new?NetDataContractSerializerOperationBehavior(op));
????????????????????}
????????????????}
????????????????host.Open();
????????????????Console.Read();
????????????}
好處提高了序列化能力(例如如此可以序列化Type類型),缺點(diǎn)降低了數(shù)據(jù)接口的松耦合性.
轉(zhuǎn)載于:https://www.cnblogs.com/kingge/archive/2011/03/14/1983573.html
總結(jié)
以上是生活随笔為你收集整理的替换WCF默认序列化方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一起学WP7 XNA游戏开发(八. 让3
- 下一篇: 命令行收集(DOS/Linux/nc/x