WCF中传输自定义类型时,必须在服务接口类(服务协定)上加上ServiceKnownType(typeof(yourClass)),

在实际应用中比较麻烦,可以用动态的办法来实现动态添加。

服务接口类,加上一行 [ServiceKnownType("GetKnownTypes", typeof(KnownHelper))]

再实现定义类KnownHelper及方法GetKnownTypes

    [ServiceContract][ServiceKnownType("GetKnownTypes", typeof(KnownHelper))]public interface IService{[OperationContract]DataSet GetData(Hashtable hash);} static class KnownHelper    {        public static IEnumerable<Type> GetKnownTypes(ICustomAttributeProvider provider)        {            List<Type> knownTypes = new List<System.Type>();            string[] types = null;            if (System.Configuration.ConfigurationManager.AppSettings["KnownTypes"]!=null)            {                types = System.Configuration.ConfigurationManager.AppSettings["KnownTypes"].ToString().Split('|');                foreach (string type in types)                {                    knownTypes.Add(Type.GetType(type));                }            }            return knownTypes;        }    }

这内我用的办法把需添加ServiceKnownType的类型名称写到配置文件的AppSettings内,当然也可以用其他办法,比如文件。

转载于:https://www.cnblogs.com/thanks2004/p/5028434.html

WCF动态添加ServiceKnownType相关推荐

  1. OpenLayers 动态添加标记(Marker)和信息窗(Popup)

    方式一:使用marker方式 1.在地图上添加标记图层 var markers =newOpenLayers.Layer.Markers("Markers"); map.addLa ...

  2. 【Runtime】动态添加方法demo

    今天写一个小demo来演示下runtime的消息转发和动态添加方法. 一般项目中都会有保存当前登录用户资料的需求,我们可以直接将登录成功后的用户信息分别保存到NSUserDefaults中: [def ...

  3. 安卓java代码标签_Android实现动态添加标签及其点击事件

    在做Android开发的时候,会遇到动态添加标签让用户选择的功能,所以自己写了个例子,运行效果图如下. 标签可以左右滑动进行选择,点击的时候,会弹出toast提示选择或者取消选择了哪个标签.通过动态添 ...

  4. Quartz动态添加、修改和删除定时任务

    2019独角兽企业重金招聘Python工程师标准>>> Quartz动态添加.修改和删除定时任务 转载于:https://my.oschina.net/haokevin/blog/1 ...

  5. 一种无需留坑为页面动态添加View方案

    在Activity或Fragment页面动态添加View,有其应用场景,比如配合运营在首页动态插入H5活动页(如下图手淘的雪花例示[1]),在页面头部插入通知View等.本文结合ActivityLif ...

  6. jsp ajax动态添加数据,jquery Ajax实现Select动态添加数据

    jquery Ajax实现Select动态添加数据,具体内容如下 1.背景 最近在工作中,遇到了一个关于select的问题.一般情况下,select下拉框中的数据都是固定的或者直接在jsp中读取列表值 ...

  7. Dojo学习13 dijit.Tree 动态添加节点之一

    为什么80%的码农都做不了架构师?>>>    13. dijit.Tree 动态添加节点之一 对dijit.Tree研究了很久,源代码也看了好多遍了.对于fx这个类的研究还需要更深 ...

  8. addroutes刷新_vue 解决addRoutes动态添加路由后刷新失效问题

    前言 某些场景下我们需要利用addRoutes动态添加路由,但是刷新后就会失效,前段时间项目里刚好遇到了这个应用场景,所以就花时间研究了一下,做下分享跟记录,说的不对的地方,请大家指正. 应用场景:用 ...

  9. html5 作业调度,Net作业调度(五)—quartz.net动态添加job设计

    介绍 在实际项目使用中quartz.net中,都希望有一个管理界面可以动态添加job,而避免每次都要上线发布. 也看到有园子的同学问过.这里就介绍下实现动态添加job的几种方式, 也是二次开发的核心模 ...

最新文章

  1. 【OpenCV 4开发详解】图像腐蚀
  2. 2打开md文件_File Cabinet Pro for Mac(菜单栏文件管理器)
  3. 数组中两个数的最大异或值 两数异或值一定小于两数相加和
  4. python 多层嵌套 json_python解析多层json操作示例
  5. ERROR: cannot launch node of type [turtlebot_teleop/turtlebot_teleop_key] 问题解决
  6. 6、struts.properties配置详解
  7. 前端页面通过web3.eth.accounts无法获取账户信息
  8. Linux中后台执行scp
  9. django 实现电子支付功能
  10. 在线教育如何应对流量洪峰?阿里云专家:上云+云数据库是最佳路径
  11. 计算机一级考试搜题app,计算机一级考试题库答案,哪个搜题软件能找到?
  12. utc时间 单位换算_utc时间(utc时间转换北京时间)
  13. 三种非对称加密算法总结
  14. 全国计算机三级网络技术感悟,这几天准备计算机三级考试的感悟
  15. 过滤百度广告+搜索热点+adblock规则快速入门
  16. 小猿圈python金角大王_小猿圈python学习-基本数据类型
  17. Spring源码解析(五)-Bean的实例化流程(上)
  18. SSH Tunneling (SSH隧道)远程连接服务器
  19. ffmpeg mp4切片ts加密
  20. python 视频下载中国大学慕课_下载视频

热门文章

  1. [翻译]LightRacer游戏架构
  2. MySQL02-升级
  3. 快速了解Kubernetes微服务中的通信
  4. 溢出内容菜单_停止过度使用溢出菜单
  5. 计算机英语缩写AGP,IT行业常用计算机缩略语
  6. 安卓环境搭建 SDK emulator directory is missing
  7. html中item属性,项目id(属性) | itemid (attribute)
  8. 如何快速写一个违背双亲委托机制的classloader
  9. 瀚思首发三款产品 推动大数据安全战略布局
  10. Swift:UIKit中Demo(一)