using System.Runtime.Serialization; using System.ServiceModel; using MySpace; using System.ServiceModel.Channels; using System;

namespace MySpace {

[DataContract]     public class Person     {         public Person()         {         }         [DataMember(Name = "Name")]         public string mName         {             get; set;         }         [DataMember(Name = "Age")]         public int? mAge         {             get; set;         }         [DataMember(Name = "Single")]         public bool? mIsSingle         {             get; set;         }

[System.Runtime.Serialization.OnDeserialized]         void OnDeserialized(System.Runtime.Serialization.StreamingContext c)         {             mAge = (mAge == null ? 18 : mAge);         }     }

[ServiceContract]     public interface IService     {         [OperationContract]         Person Method(Person dd);     }

public class Service : IService     {         public Person Method(Person dd)         {             return dd;         }     }

class Program     {         static void Main(string[] args)         {             string Url = "http://localhost:8000/";             Binding binding = new BasicHttpBinding();             ServiceHost host = new ServiceHost(typeof(Service));             host.AddServiceEndpoint(typeof(IService), binding, Url);             host.Open();             ChannelFactory<IService> fac = new ChannelFactory<IService>(binding);             fac.Open();             IService proxy = fac.CreateChannel(new EndpointAddress(Url));             Person d = new Person();             d.mName = "BuzBuza";

Console.WriteLine("Data before calling service " + (d.mAge == null ? " null " : d.mAge.Value.ToString()));             Console.WriteLine("Data before calling service " + (d.mIsSingle == null ? "null" : d.mIsSingle.Value.ToString()));             d = proxy.Method(d);             fac.Close();             host.Close();             Console.WriteLine("Data after calling service " + (d.mAge == null ? " null " : d.mAge.Value.ToString()));             Console.WriteLine("Data after calling service " + (d.mIsSingle == null ? "null" : d.mIsSingle.Value.ToString()));

Console.ReadLine();         }     } }

WCF使用小例子的更多相关文章

  1. springmvc入门的第一个小例子

    今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...

  2. java即时通信小例子

    学习java一段时间了,今天写来一个即时通信的小例子练手在其过程中也学到了一些知识拿出来和大家分享,请路过的各位大神多多赐教... 好了下面讲一下基本的思路: 首先,编写服务器端的程序,简单点说吧就是 ...

  3. Runtime的几个小例子(含Demo)

    一.什么是runtime(也就是所谓的“运行时”,因为是在运行时实现的.)           1.runtime是一套底层的c语言API(包括很多强大实用的c语言类型,c语言函数);  [runti ...

  4. bootstrap 模态 modal 小例子

    bootstrap 模态 modal  小例子 <html> <head> <meta charset="utf-8" /> <title ...

  5. INI配置文件分析小例子

    随手写个解析INI配置字符串的小例子 带测试 #include <iostream> #include <map> #include <string> #inclu ...

  6. JavaScript小例子:复选框全选

    JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...

  7. 【zTree】 zTree使用的 小例子

    使用zTree树不是第一次了  但是 还是翻阅着之前做的 对照着 使用起来比较方便  这里就把小例子列出来   总结一下使用步骤 这样方便下次使用起来方便一点 使用zTree树的步骤: 1.首先  在 ...

  8. js小例子(标签页)

    运用js写的一个小例子,实现点击不同的标签出现不同的内容: <!DOCTYPE html> <html> <head> <meta chaset=" ...

  9. sbrk与brk的使用小例子

    sbrk() 和 brk() - Unix的系统函数   sbrk()和brk() 系统的底层会维护一个位置,通过位置的移动完成内存的分配和回收.映射内存时 以一个内存页作为基本单位.   void* ...

随机推荐

  1. 6 Django的视图层

    视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...

  2. 开启虚拟机所报的错误:VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary fil

    当我们开启虚拟机时出现错误: VMware Workstation cannot connect to the virtual machine. Make sure you have rights t ...

  3. Java - ArrayList List 等迭代集合执行移除(remove) 的正确方法

    方法1: List<String> al = new ArrayList<String>(); Iterator<String> it = al.iterator( ...

  4. 我的转行之路(电气转IT)------2018阿里校招面经

    博主本专业电气,今年3月下定决心转向互联网行业,本来想依仗自己比较自信的学习能力自学成才的,不过学了一段时间感觉还是需要一个人来指点,不仅仅是指点一些技术性的问题,更是需要有人来指点一下方向性的问题. ...

  5. Unicode字符图标

    http://unicode-table.com/cn/#control-character

  6. 《Cracking the Coding Interview》——第17章:普通题——题目3

    2014-04-28 22:18 题目:计算N的阶乘尾巴上有多少个零? 解法:计算5的个数即可,因为2 * 5 = 10,2的个数肯定比5多.计算5的个数可以在对数时间内搞定. 代码: // 17.3 ...

  7. node express 登录拦截器 request接口请求

    1.拦截器 拦截器可以根据需要 做权限拦截 登录只是权限的一种, 思路是req.session.user判断用户session是否存在,是否是需要拦截的地址, 如果是就跳转登录页,或其他页, 如果非需 ...

  8. Python zip()函数实现并行迭代

    示例1: for i, j in zip(range(0, 10), range(1, 11)): print(i, j) 输出结果: 0 11 22 33 44 55 66 77 88 99 10 ...

  9. shell之iptables

    这五个位置也被称为五个钩子函数(hook functions),也叫五个规则链. 1.PREROUTING (路由前) 2.INPUT (数据包流入口) 3.FORWARD (转发管卡) 4.OUTP ...

  10. 五、SPR 单一职责

    1.一个类具有什么职责,应该是站在他人的角度或者说是使用者的角度来定义.职责不是一件事,而是许多和职责相关的事组成的. 例如:一个快递员,除了送快递,还需要做分包.收款.那么快递员的职责是和快递相关的 ...