替换WCF默认序列化方式
创建类 :
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
}
服务端:
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类型),缺点降低了数据接口的松耦合性.
转载于:https://www.cnblogs.com/kingge/archive/2011/03/14/1983573.html
替换WCF默认序列化方式相关推荐
- redis-springboot-redistemplate更改序列化方式
redisTemplate 默认的序列化方式为 jdkSerializeable, StringRedisTemplate的默认序列化方式为StringRedisSerializer 可以通过手动配置 ...
- 多种方式实现动态替换Android默认桌面Launcher
多种方式实现动态替换Android默认桌面Launcher 文章目录 多种方式实现动态替换Android默认桌面Launcher 背景简介 技术方案 三种方案 方案一 方案二 方案三 风险 背景简介 ...
- Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑
前言 上一篇已经介绍了优雅的操作Redis: [小家Spring]Spring Boot中使用RedisTemplate优雅的操作Redis,并且解决RedisTemplate泛型注入的问题.本篇着重 ...
- 使用Kryo的序列化方式提升Netty性能
2019独角兽企业重金招聘Python工程师标准>>> 为什么选择Kryo? 首先,Kryo的序列化方式,在性能方面是比较好的,和Protobuf差不多,比Java原生的序列化方式快 ...
- java kryo 序列化_java中的序列化方式及dubbo使用kryo序列化
java中的序列化方式: 1. 自带序列化 ObjectInputSteam. ObjectOutStream等 2. hession2 3. json ,xml等格式 4.kryo 5.FST - ...
- Redis - RedisTemplate及4种序列化方式深入解读
文章目录 概述 RedisTemplate StringRedisTemplate RedisSerializer 序列化 接口 JDK 序列化方式 (默认) String 序列化方式 JSON 序列 ...
- Java序列化 - 分析不同序列化方式的优劣
1.序列化简介 1.1 定义 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据 1.2 序列化的目的 通过序列 ...
- springboot系列——redisTemplate和stringRedisTemplate对比、redisTemplate几种序列化方式比较
文章目录 一.redisTemplate和stringRedisTemplate对比 1.StringRedisTemplate 2.RedisTemplate 二.redisTemplate序列化方 ...
- 深入理解 Redis Template及4种序列化方式__spring boot整合redis实现RedisTemplate三分钟快速入门
概述 使用Spring 提供的 Spring Data Redis 操作redis 必然要使用Spring提供的模板类 RedisTemplate, 今天我们好好的看看这个模板类 . RedisTem ...
最新文章
- Find Large Files in Linux
- Java int[] integer[] List之间的转换
- 在DataGridView控件中加入ComboBox下拉列表框的实现
- [XUPT_ACM]寒假第一次比赛题解
- sklearn 特征工程
- ACM MM 2018论文概述:基于多粒度监督的图像语义物体协同标注
- 使用Java读取 “Python写入redis” 的数据踩坑记录
- jQuery系列(十四):jQuery中的ajax
- python爬取b站排行榜_实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列...
- 三维视觉前沿进展年度报告
- 算法移植优化(一)android 学习笔记
- 云图说|云上应用监控神器——应用性能监控APM2.0
- Linux7没有网卡,centos7安装后缺少网卡如何解决?
- 推荐几个我珍藏的公众号~超级无敌!
- SELECT 基本语法结构
- 全国电子设计大赛资料打包网盘10G
- 音频剪辑软件哪个好用
- Python爬虫爬取个人主页信息(拖拽验证码验证)+Linux部署
- Android Adb 连接海马玩模拟器
- 花呗接入央行征信系统!会影响贷款吗?