<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_ASP.net学习笔记</title><subtitle type="text">专注电子商务</subtitle><id>http://feed.cnblogs.com/blog/u/30484/rss</id><updated>2011-05-03T02:54:40Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/30484/rss"/><entry><id>http://www.cnblogs.com/dotnet010/archive/2011/02/05/1949258.html</id><title type="text">挥别虎年，迎来兔年</title><summary type="text">其实这篇文章应该是2010年底写的，但是我本人的一些思想还是比较传统的，还是感觉“过年”了才是一个年度的完结，所以索性连总结的年号也改掉，这样才通顺。虎年发生了很多事，对于我来说无异于一个人生的转折。先是从红孩子辞职，其实红孩子是一家不错的公司，如果养老的真的很合适，感谢这个团队温馨融洽的氛围，天平、温良、志勇、纪元、文敬、兆晶一起工作时的快乐似乎还是昨日，非常感谢你们，我们永远都是朋友。辞职后，带着老婆去三亚补了一个难忘的蜜月，刚去三亚去的时候感觉也没什么，老婆向往海，看到大海会激动，但是对于我这种在海边长大的人来说早就麻木了，面对狡诈的本地人真是头痛不已，但是接下来的一个月的时间使我就从讨</summary><published>2011-02-05T04:52:00Z</published><updated>2011-02-05T04:52:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2011/02/05/1949258.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2011/02/05/1949258.html"/><content type="html">&lt;p&gt;其实这篇文章应该是2010年底写的，但是我本人的一些思想还是比较传统的，还是感觉&amp;#8220;过年&amp;#8221;了才是一个年度的完结，所以索性连总结的年号也改掉，这样才通顺。&lt;/p&gt;&#xD;
&lt;p&gt;虎年发生了很多事，对于我来说无异于一个人生的转折。先是从红孩子辞职，其实红孩子是一家不错的公司，如果养老的真的很合适，感谢这个团队温馨融洽的氛围，天平、温良、志勇、纪元、文敬、兆晶一起工作时的快乐似乎还是昨日，非常感谢你们，我们永远都是朋友。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;辞职后，带着老婆去三亚补了一个难忘的蜜月，刚去三亚去的时候感觉也没什么，老婆向往海，看到大海会激动，但是对于我这种在海边长大的人来说早就麻木了，面对狡诈的本地人真是头痛不已，但是接下来的一个月的时间使我就从讨厌三亚到喜欢三亚。三亚的气候宜人，生活节奏也很慢。跟本地人谈话了解到，他们早上10点上班中午11点半休息，下午3点上班到4点半下班，对我来说这简直就是共产主义社会了，这个时间安排与当地的气候和风俗有关，三亚和夏威夷一样位于北纬17度，属于热带气候，平均气温在25度以上，中午地面温度直逼40度，知道3点以后才会好转，所以三亚是午休到3点左右。因为白天太热所以三亚人一般都是太阳落山后才出来活动，吹着凉风，三一群五一伙的聊天喝酒，一直吃宵夜到后半夜，所以上午上班的时间也晚。三亚是个旅游城市，所以三亚人从老人到小孩都是以宰杀外地旅游者为业，刚到的时候也没少吃憋。但是后来慢慢熟络了，就可以避免那些陷阱，安心游历各处的旅游景点。三亚是个不适合旅游的地方，因为它炎热的气候会让刚去的人无法适应，它的生活方式需要你很长的时间去改变调整，一周之内很难做到这些，但当你调整好适应之后就是享受180度海景房、丛林风光、芒果盛宴、海鲜盛宴。以上的做个备案，希望今后还能腾出1到2个月的时间去享受三亚。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;然后加入了一个创业团队半年然后辞职，这个过程让我学到了很多，也让我看清了很多事情，让我有了更多的思考，对我未来也有莫大的帮助，虽然期间有很多不进入人意的地方，但是我现在也都释然，我感谢期间团队成员的激情，感谢大家的帮助，毕竟谋事在人成事在天。&lt;/p&gt;&#xD;
&lt;p&gt;再次闲赋在家的我也没闲着，秋季是个适合运动的季节，网球就这么突然间闯进了我的生活，虽然我现在依然打的不怎么样，但是真的很喜欢打球时的感觉，希望能继续下去。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上岗再就业有些巧合，从快消品进入到机械行业，虽然做的还是技术和管理，但是行业的不同让我有了很多的新鲜感，不过公司的管理方式和管理思想的不同也让我现在陷入了一个小小的囧境。另外一些理念的共同不畅也让我颇有挫折感，boss对技术和互联网还是不够了解，导致我的一些方案建议也被搁置，挫折感大增啊。不过我不是个轻易放弃的人，会继续坚持的。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;家里发生了一些重要的事情，不过大事只有三件。第一件重要的事情是前阵子刚买了房子，虽然房贷的数额巨大而且期限是30年，但是我依然很开心，毕竟终于有了一个给媳妇挡风遮雨之所，也兑现了我对媳妇的诺言。第二件事是在创业团队工作的那段时间养了松狮毛毛，你在这个时期加入了我们家，给我和媳妇带来了太多的快乐。最后是媳妇陪媳妇去了趟西安，在北京各大医院都开刀的小毛病终于通过吃中药好转了，现在的医院医生真不知道说什么才好，总之有医德的太少了，看中医还得找古传的终于世家。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;总之，这一年过的有些跳跃，在来回的折腾中让我的技术不断的改变应用场合，适应各种情况。导致在技术的广度方面继续快速扩大，但是在技术的深度方面却进步缓慢，也没有积累下来什么。我个人再另一方面也从只专注技术到学习管理，关注管理，实战管理这么一个过程。生活是蒸蒸日上，继续向幸福的路上前行。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在新的一年，年初将将房子装修完，这样就不用再担心被房东赶来赶去，可以安心的做事情。&lt;/p&gt;&#xD;
&lt;p&gt;在技术方面希望有更多的探索，在分布式处理方面有更多的积累，开发一套开源cms，以便今后自己做R&amp;amp;D开发，将电子商务系统再做一次重构，支持大并发的分布式负载，抽象出一个底层视情况开源。&lt;/p&gt;&#xD;
&lt;p&gt;公司网站方面能在SEO和内容组织方面有更大进展，将网站方面将PR提升到5-6，排名也进一步提升。在公司信息化建设方面，CTI、CRM、ERP、网站、商城，公司以后的重构完善，处于计划状态的完成开发计划，将公司的信息能够进行有机的整合而不是各散一处，从而促进公司资源、信息的统一备案、共享，避免信息孤岛。&lt;/p&gt;&#xD;
&lt;p&gt;团队建设方面将完善基本建制，规范团队开发行为改进公司原先系统bug乱飞，开发无计划，无文档，无验收目标的三无情况，继续寻找建设学习型团队的方法。&lt;/p&gt;&#xD;
&lt;p&gt;希望毛毛健康成长，希望媳妇健康幸福。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看来这一年事情还真挺多的，但是说起来只有一件事就是在技术的路上继续前行，同时也祝福看到本文的所有朋友一起为梦想远行！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/dotnet010/毛毛.jpg" width="590" height="439" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1949258.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2011/02/05/1949258.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872477.html</id><title type="text">评论：B2Cer，其实您既不电子，也不商务</title><summary type="text">本人注：这是一篇在同事的博客上看到的转载，很想知道出处，里面的观点很好，很深入。但是对于一些观点还有待探讨，会在下面写明，请先看原文，也希望作者能和我联系，一起探讨电子商务方面的问题。------------------------------华丽的分割线，代表着转载开始-------------------------------仔细看了Veryls的《B2C之番茄树停止运营的必然性：busin...</summary><published>2010-11-09T04:05:00Z</published><updated>2010-11-09T04:05:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872477.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872477.html"/><content type="html">&lt;div&gt;&#xD;
&lt;p _extended="true"&gt;本人注：这是一篇在同事的博客上看到的转载，很想知道出处，里面的观点很好，很深入。但是对于一些观点还有待探讨，会在下面写明，请先看原文，也希望作者能和我联系，一起探讨电子商务方面的问题。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;------------------------------华丽的分割线，代表着转载开始-------------------------------&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;em _extended="true"&gt;仔细看了Veryls的《B2C之番茄树停止运营的必然性：business sense的先天缺失》感触很深 本想回贴了之 却越写越多 索性另开一贴。&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;甭管用词多么华丽，说到底B2C就是零售，在零售领域里 B2C是个新渠道，一个小的不能再小的渠道...作为这渠道的从业人员，很难讲，有多少人了解零售，甚至讲不清楚，有过一次完整的低价买进高价卖出并成功拿到利润的人有多少。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;自打决定做B2C起，其实你就注定和IT和高科技无缘，如果你依旧拗着IT人士的造型，那么我觉得您是被忽悠进这个行当的，要么就是您忽悠了人家。让我们看看B2C的商业本质。去掉了互联网这块遮羞布，淘宝易趣，说白了就是一摆地摊儿的集市...对，是集市，也就是吴山夜市或者城隍庙的级别， 离四季青还差点儿。淘宝商城出来了咱做电商的总算有点身份了,起码咱和地摊儿无证经营划清界限了,虽然商城品牌体量加起来也就跟县城商业步行街差不多...&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;在零售的大背景下面...电商其实很渺小...在零售领域 我们还有太多的课要补。放下身段，钻进仓库，走进市场，好好看看，我们提供的产品和服务价值在哪里在。。。关注货源 品牌 渠道 产品特性 店招设计 货品陈列 销售话术 包装质量 仓库管理 物流配送...&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;strong _extended="true"&gt;日销100单&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;达到这个范围以前 一切跟技术无关 学好如何在淘宝摆摊就是胜利 你就是一个体户 你每天考虑的问题是这产品质量咋样?价格便宜不?网站漂不漂亮?客服小姑娘有没有耐性?仓库有没有蟑螂?快递公司的小弟有没有偷懒? &lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;搞定了这些，生存是没问题了，接下来该为将来做下打算了。七八十年代家门口摆摊儿的，挣钱的现在成了商业巨子 没挣钱的也混了个时代弄潮儿的名分，现在你再去门口摆摊儿试试，每天招呼你的只有城管。90年代摆摊儿的都被赶进了市场，那时候你要是刚好被赶进了哪个市场，伪劣内销好货出口，批零兼营啥钱都挣，市场这拨人混到现在，做的好的干零售整成了百货巨头，走上了品牌的道路，做不好的混在市场里继续干批发，也整出了个义乌奇迹，那时候地球上做买卖的有不知道北京的，没有不知道义乌的。现实说明，摆摊儿只能解决短期生计问题，目前看来，现在去淘宝摆摊儿还能混段时间，但随着淘宝商城的推出以及网代体系的逐渐成熟，摆摊儿的日子会越来越不好过。所以摆在你面前的只有2条路：除了赶紧混进淘宝商城外，建议你趁早建个独立网店。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;用shopex还是ECSHOP？这是一个问题。土特产 技术不行 进口货 zen-cart、OSCommerce正流行。洋人的东是好 可中国人不习惯 水土不服呢 风险忒大。。。整点现成的吧 还不知道能不能和淘宝数据对接。那用淘宝授权shopex的&amp;#8220;店掌柜"如何？显然不行！派代上骂贴一堆 用过都后悔。那万网的&amp;#8221;淘里淘外&amp;#8220;呢？啥时候上线还不知道。正在痛苦着，淘宝旺店出现了！眼前一亮：数据流没问题，操作简单，价格不贵，淘宝自己开发的，总比授权的强 还不用二次开发。仔细一问，淘宝旺店只能注册淘宝用户。。。好嘛，说是独立网店，原来就是门面独立。。。太傻太天真。。。牢记祖训：生意不能偷懒 赚钱没有捷径。于是老老实实招几个程序员，研究淘宝API，然后拿ECSHOP开刀操练 .... &lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;网店总算上线了，推广怎么办？这又是一个问题。您要是到现在还在口口声声拿房租说事儿，试图说明网店比实体店有成本优势，那您是真的被媒体忽悠了。我可以负责任的讲，房租成本说纯属扯淡。实体店的租金就是客流保障，开着门就有人来，网店你试试，上了线挂那儿有谁会来？那就投广告吧。。。等你广告费花的差不多的时候，突然发现不是被媒体坑了就是被联盟涮了，正当你琢磨着是上CPS还是投硬广？是走代理还是走会员推荐．．．又或者．．．搞个传销系统啥的？突然有一种痛苦的失落感&amp;#8212;&amp;#8212;怎么越整越没电子商务的味儿．．．做这些个事儿不就是一戴着IT帽子的个体土老板么．．．没错．．．就是个体老板　这就是生意　不论线下还是线上．．．生意就是生意。在外面，不论您号称自己是IT精英还是电商人士，不论您被评为IT新贵还是创业明星，场面上的事情，你可以忽悠朋友女朋友挣点面子，也可以忽悠媒体政府拿点补贴，但回到家，回到公司，您必须十二分清醒并随时提醒自己记住一件事&amp;#8212;&amp;#8212;您的身份就是个体工商户，您的身价、产业、团队、规模。。。无一不是处在产业链的最底层，您唯一高的东西只有成本。。。　&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;strong _extended="true"&gt;日销1000单&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;这时 咱每个月利润也有个二十来万了 供应商也不敢小瞧咱了 这下咱可以抽空折腾下CRM和物流管理系统 把客服那些个小姑娘扩个容 加个耳麦 然后整个工控 加个三汇板卡 申请个400 摇身一变 咱也有小型呼叫中心了 独立网站上线了 分销平台也上线了 等你把跟淘宝的API数据接口开发好后 数据库也全都统一了 这下咱牛逼了 信息流那叫个通畅啊 别急 还没完....然后咱得办件事 不是都说物流难谈吗? 好 咱招标 发个300万保底合同 不过底不是白保的 咱得开条件啊. 免费给咱仓库 信息平台对接 否则免谈! 你看着那帮家伙还不得挤破头来求咱.呀. 下单 配货 发货 一气呵成 全程跟踪.牛叉吧...这下咱物流也通畅了 喏...电子商务的感觉来了 这下您可以号称自己有点儿技术含量了。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;这下你头痛的也不再是那些个推广啊 技术啊 优化啊 啥的...该找谁找谁 这是咱干的活儿吗? 都咱自己干了还要那些个专业人才干嘛?白养着不花钱啊?这下咱得谈谈战略了 比如是在这个行业深挖呢 还是啥好卖就卖啥 是把品牌做透呢 还是把库存卖爆 是做一特牛渠道呢 还是做一特强厂商 是倒买倒卖呢 还是自己开发...这每次开会吧 全是投诉&amp;nbsp; 一查原因吧 全是配送失误...杂办? 一个总仓不行啦...得分区啦! 北京上海广州 各整一个 当年签约时一个个号称全国都是网点，到处都是优势的快递公司开始歇菜啦，于是你不得不实地考察，找出每家快递的最强区域，和每个区域的最强快递，再配上一堆物流经理驻点盯牢。全国三大物流战区 十大重点服务城市 二十家物流供应商 三十个物流经理...万一赶上淘宝搞次节日活动 秒杀下 对折下 外加满送限时抢 或者谁把您的直通车限速取消了...估计还没等活动搞完，您的物流部就已经残废了，物流经理兜里揣着辞职信，扔给您一句话:要么批预算买地盖物流中心 包专列 组车队 要么老子明儿个就去京东上班儿去 .... &lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;正当物流系统升级的工作如火如荼的进行时，您的销量已经引起地方媒体的关注，于是您的企业成为当地知名IT企业，互联网协会邀请您成为理事单位，科技局把您列为高新技术企业，现代服务业优秀典型，信产局给您批了电子商务专项补贴、软件专项基金，创业中心把您的项目拿去申报科技型中小型企业技术创新基金，楞是从工信部套了30万硬塞给你。正当您闻到了电子商务的气息，沉浸在美好的政府支持中时，突然发现一个残忍的现实：这一切让您洋洋得意的技术和系统所产生的价值。。。呃 也许还谈不上价值。简单点说：您一年挣的，也就是一三流品牌的县级代理商的水准。。。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;strong _extended="true"&gt;日销10000单&lt;/strong&gt;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;这时你每天接到的骚扰电话不再是工商注册代理记帐发票刻章啥的 而是 某天使投资人 某创投公司 某境外基金 某江浙私募 电视台报纸 啥都来了。。。每天围绕你的是 商业模式 公司战略 上市计划...哥们儿 冷静...别理会这些人...您现在要考虑的是怎么把ERP整合进你的系统 如果您的团队或者供应商够强 就把财务管理也整进去。等你全都整完了这些工作，你的生意已经大的足够让你傲视群B(B2C从业人员）本地媒体称您是全新电子商务模式缔造者 电商界黑马 新经济领军人物 。。。全国媒体估计也时不时邀请您做个访谈、嘉宾啥的。您可是代表了先进生产力和新经济的有技术含量的新兴企业家。。。拿着两轮VC进来的美金，您把刚从游击队转型正规军的队伍一步到位全面升级美械装甲师，研发团队都来自世界五百强、核心架构系统全套IBM WebSphere、DB2、Lotus和Tivoli，企业数据中心、呼叫中心全上AVAYA、自建物流中心、再加上BI商业智能、用户数据消费模型分析、媒体效果监测。简直武装到牙齿。坦白的讲，这时的您已经可以算是在零售业站稳脚跟了。不过要是谁跟你说，您就是互联网上的山姆&amp;#183;沃尔顿 您一定得抽丫。因为现实是：您目前的业绩充其量只是沃尔玛全球四千多家门店中一家门店经理的水准。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;strong _extended="true"&gt;日销100000单+&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;恭喜你.. 此时您应该已经准备上市了 如果谁还不知道您是我朋友 那只能活该他倒霉 要不然早就该来每天巴结我去问您要点儿原始股了吧 拿着PRE IPO时投资公司那里套来的现金 以及挂牌后股民们大把的钱 您与UPS、EMS、FEDEX签订了战略合作协议，建立覆盖全球的配送系统、多语言零售平台、包下印度或者菲律宾的呼叫中心提供28种语言下单、整合全球供应链、把价格压到最低，通过实现全球配送，您被誉为中国的AMAZON。强大的物流体系不仅让你赢得了强大竞争力，连竞争对手都希望跟您合作，使用您的物流系统。您的公司成为受人尊敬的成功电商企业。但此时，你困惑了，最终让你获得成功的，原来不是电子商务技术，却是物流。。。您花费数年心血，建立起了牛逼的电商公司，最终连自己的企业都无法归类&amp;#8212;&amp;#8212;互联网？零售？还是物流？勿庸置疑，在B2C里你已经很强了，但在零售行业，沃尔玛依然是全球的王者，他在网上零售领域不尽人意的表现只能说明他曾是一头睡狮。现在，他醒了，整个在线零售业将为之震憾。一场杀戮正悄悄地展开。继续沉迷在所谓&amp;#8220;先电子、后商务&amp;#8221;的朋友们。。。保重。。。因为各位所崇尚的&amp;#8220;电子&amp;#8221;不仅不是电商企业的优势，根本就是令人汗颜的差距，更不要去提&amp;#8220;商务&amp;#8221;。请各位对比下自己的电子商务系统与沃尔玛这家&amp;#8220;商务&amp;#8221;的不能再&amp;#8220;商务&amp;#8221;的传统企业在七八十年代建设的全球采购系统、配送系统、商品管理、电子数据系统、EDI比较起来。。。和90年代700,000,000USD的信息化投入相比。优势在哪儿？他们甚至买了颗卫星来传输数据。如果说沃尔玛与您的差距是互联网经验与网店系统，那么您与沃尔玛的差距是整个供应链的信息化。它花1000万美金我想足以赶上您，如果您要赶上它。。。我想还是不要做这样的尝试比较好，AMAZON在这方面赶的还蛮辛苦的，光是一个仓管进销存信息化就折腾了他们上亿美金。你如果钱够也可以尝试下。最后，我不得不告诉你一个坏消息、一个好消息。坏消息是：沃尔玛的在线零售业务准备改组重新上线了，如果您心中还埋藏着网络沃尔玛的梦想，还是趁早打消比较安全。好消息是：目前配送到户的精细化物流管理还是它的短板，也许您有机会在这方面和它谈谈合作。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;零售可分线上线下，但决定零售企业优劣的既不是电子也不是商务，。。。零售业殊途同归。线上强的，做到一定阶段，应该尝试一下门店销售，一定数量的实体店有助于提升竞争力。线下强的，再不启动电子商务项目。。。迟早被淘汰。对商务完全没兴趣的同志们。。。迷途知返 早日转型吧。既然卖东西不是您的强项也不是兴趣所在，那么用你的专业能力为传统企业提供服务也许更适合。千万别说自己是做线上沃尔玛的也别说您是做电子商务的。您是提供互联网服务的，既不电子，也不商务。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;Allan &lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;QQ:7080193&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;Mail:anxion@139.com&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;注：此贴首发派代,转载时请注明！&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;------------------------------华丽的分割线，代表着转载结束-------------------------------&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;第一，对于概念的澄清。淘宝是C2C并不是B2C。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;第二，文章作者B2C对房租成本提出了质疑，对于这点我觉得也是非常有争议的，对于初创业的商户来说，最难得就是选店址。贵的自然是生意好，但是投入资金多，提高了准入门槛。而便宜的真的是没有客流量的保障。是选门脸，还是在商场内租摊位这都是问题。B2C可以给创业者提供最低的准入门槛，只要一套网店程序+服务器租赁费用就可以开展业务了。另外，客流量高的商场真的成交率就高么？有些特定的商品并不是在客流量大的地方就一定好，客流量的成交率是关键这，个也需要长时间的考证的。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;第三，电子商务对传统商务就一定是没有优势么？电子商务在创立伊始就是以计算机和网络为核心，整个企业都是信息化，沃尔玛的信息化是和产业链是很成功，但沃尔玛的产业链信息化真的就无懈可击么？我看未必，在电商时代，也会慢慢的形成一轮产业链整合，随着soap，webserver，vpn，ipv6，GPS等技术的发展，会给电商带来更大的想象空间。&lt;/p&gt;&#xD;
&lt;p _extended="true"&gt;总结，基本上我是认同本文观点的，毕竟无论是电子商务还是传统商务都是商务，很多方面都是殊途同归，但是同归并不代表着电商要模仿传统商务的物流管理么模式，构建于互联网和物联网上的新电商会有更多可做的事情。&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1872477.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872477.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872381.html</id><title type="text">整理思路重新开始，一段乱七八糟的“电子商务创业”经历。--工作有风险，选公司要谨慎</title><summary type="text">半年多前从红孩子出来，4月左右，到了一家创业公司，被CEO的激情所打动，加入了这家刚刚创立的公司。话说这家公司主营的业务是在线服装，公司的理念是为每个客户寻找自己的设计师，所以定位稍微高端一些，主要是做定制和限量服装，公司当时也和一些服装学院开展合作，这样就有了很多可用的服装设计师和服装版权，所以一套服装的费用也是大众可以接受的，大概是5000以下，低端的2000左右，试想给你量身订制一套衣服，永...</summary><published>2010-11-09T02:36:00Z</published><updated>2010-11-09T02:36:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872381.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872381.html"/><content type="html">&lt;p&gt;半年多前从红孩子出来，4月左右，到了一家创业公司，被CEO的激情所打动，加入了这家刚刚创立的公司。话说这家公司主营的业务是在线服装，公司的理念是为每个客户寻找自己的设计师，所以定位稍微高端一些，主要是做定制和限量服装，公司当时也和一些服装学院开展合作，这样就有了很多可用的服装设计师和服装版权，所以一套服装的费用也是大众可以接受的，大概是5000以下，低端的2000左右，试想给你量身订制一套衣服，永不撞衫，拥有自己的服装版权，这个不让你兴奋么？对于我来说，这件衣服可以是结婚时的礼服，可以是我外出交际的标志，所以我觉得还是很值得的。&lt;/p&gt;&#xD;
&lt;p&gt;公司开始的待遇很低，但是由于有很多期许，对公司的理念，计划都非常有信心，我说服了爱人，支持我加入。得到了爱人的支持，我的工作更加起劲，开始的那段时间公司的技术部门基本就是一片空白。技术部只有1个维护和2个美工，开发工作也都外包给开发公司。&lt;/p&gt;&#xD;
&lt;p&gt;开始的这段工作异常艰苦，不仅要和外包公司沟通，还要抓紧公司的技术部力量，很多时候都是忙到9点左右。通过和外包公司沟通以及整理内部资料发现，公司虽然有开发需求，但是并没有开发规范，而在我进入的时候已经开发到一半了。这个时候光依靠外包公司显然是不行的，每天重新整理开发计划，明确具体需求，规范开发文档，再和外包公司去沟通。除了这些，公司的上线计划也破在眉睫，加之外包公司没有专业的美术设计，美工风格一直无法达到我的要求。我就把美工这部分拿回来，由公司的美工去设计，公司的美工都是刚毕业的新人，好在有2个，可以发动一下他们的竞争性，但一直到完成稿，我的重审就多大几十次，好在有爱人在背后默默的支持我，CEO的全权授权才能让我放开手脚。&lt;/p&gt;&#xD;
&lt;p&gt;一直忙了差不多快一个月，终于开始可以上线了。上线当天，公司全体同仁通宵而战，非常感谢当时的销售部总监对我的支持，如果没有他当时也无法完成任务，是他的细心给了我工作上的支持。上线后，工作并没有轻松，还有很多要修改，毕竟是外包公司抢线的东西，bug很多，甚至流程上和我们本来想要的也不同。继续改吧，自己也得上，那边也不能停，一直改。&lt;/p&gt;&#xD;
&lt;p&gt;网站运行了一段时间，终于发现出问题了，不是技术上，而是货源采购上。。。那个郁闷啊。货源采购上的问题，我和销售总监都提过，可是反映了以后都没好转，行政总监（兼采购）有着不可推脱的责任。由于爱人是个体服装业主，我也经常跟着进货，所以对服装多多少少也有了解，对服装的价格扫一眼也能知道咯大概，毕竟公司的进货渠道除了定制生产的都是那些地方采购的，所以我不得不怀疑采购有猫腻。公司采购的商品，没有完整的计划，全凭采购自己一时心情。采购的东西大多都是地摊货（在我看来如此，但采购的描述不同），价格也比我预估的要高几倍。试想，在电子商务这个时代，你采购的价格这么高，款式这么老，质量这么差，最关键的是地摊货没有货源保障，客户怎么能喜欢？（PS，从这里就可以看出由于某些力量的作用，公司的方向开始偏移了）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这是时候（大概是6月份，入职2个月左右）投资人急了，对于这个项目开始跨权限指挥。话说这个投资人本身是做另一个领域的，对这个领域完全不懂，你说他指挥能起什么作用？导致公司几天一个讨论会，而无法找到公司的症结。在我眼里这个秃子头上的蚂蚱，他却看不到。指挥了将近1个月也不见好转，把责任推到了管理团队上，架空了CEO，销售总监心中不平离职出走，令我疑惑的是作为责任最大的行政总监（采购）却混的风生水起，依然如旧，我的心里那个郁闷啊。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;好在项目转变还是要有技术开发的，当时我不知道CEO被架空，就依然跟着公司继续按部就班的做新的项目。 公司换了办公地点，为了缩减开支，公司从办公楼搬到了居民区，员工也缩减了很多。由于销售总监的离职和CEO被架空，公司的氛围也有很大的变化，不在是欢声笑语，轻松自在，也没有了以往的激情。不过由于项目的原因技术部是要壮大的，这回是重新开发，我制定了新的开发计划，需求分析。部门开始扩充人员，这个时候才发现招人的难度。本来行政是兼人事的，结果招人他全然不管，笔试、一面、二面都是我一个人在忙，一天多的时候面试10来个，少的时候也有2-3个，搞得我工作都受到影响。心里郁闷那也得憋着，继续做好工作吧。还在功夫不负有心人，花了1个多月找了一个还算不错的前端，很不错的一个毕业生，基础很好，底子很厚实，缺点就是没有经验，不过好在可以培养。后台花了1个月也招了2个，加上原有的1个，3个了。美工方面总算也招到了一个有些经验的。期间公司来了一个新的推广，沟通后发现对网络推广很在行，过去是在一个4A广告工作，很有些想法，日后公司新网站的开发也都是我们两个讨论。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;本来应该是按部就班了，可是天有不测风云，公司有小人作梗。公司新搬，我对路线不熟悉，当时也没在意，毕竟我经常加班，所以晚到一会也就没什么。结果这个月行政规定改革，迟到的要罚款，领工资的时候吓了我一大跳，5次迟到扣了我1500.公司的推广部经理扣了400他工资才3000，我和董事长沟通，董事长才以另外名义给我补贴了一些。结果才发现这才是末日的开始。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;公司这次的转变是做一个包含社区的商城，所以前期的商品需要招商，由于销售总监离职，公司新招了一个销售主管（后来证明也是没什么能力，却混的风生水起）。公司的后台开发基本完成，前台也是按部就班，只是美工由于工作压力等原因提出离职，那走就走吧。可是美工这块就出了问题，没办法只能外包出去。好在这次外包方很专业，我们的准备很充分，直接见面交流了下，交接了一些文件，就在一个月后给出令人满意的作品。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;8月底，入职5个月左右，由于招商部（销售部更名）招商进度不足，一个月才招到了不到10家，而且都是些皮包公司。只能我和推广总监一起出去试试，主要还是做市场调研，顺便看看是不是客户需要一些技术支持我们没做到，为下步开发做些准备。实际工作的时候发现并不难，毕竟是免费的，还给商户提供很多技术支持，所以签到了一些不错的大商家。计算了一下，以我们这个水平一天最少可以签一家代理商，这还是没有利用过去的人脉。回公司，建议制定招商考核制度，给招商部一些压力。回来和董事长沟通，也得到了答复，谈话中，董事长（投资商）看看CEO，干不好他就是你们下场。让人寒心的话，这个时候我才知道CEO被架空，虽然过去有感觉，但是并没有确认。这句话也深深的印在我们脑子里，感觉到董事长是个有责任必定要推卸的人。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;9月10。。一个令人铭记的日子，大家应该多是这个时候开工资吧？我迟到3次（由于加班，提前打过招呼），罚款500多。。。怒火在胸中燃烧了，我知道不能再忍了。好说歹说我工作也是兢兢业业，不带这么玩人的吧？几天后递交的辞呈，放弃了所谓可能的&amp;#8220;期权&amp;#8221;。这个时候真的感觉到什么叫资本不把人当人看。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;辞呈递交了，心里突然放下了，感觉一下轻松了好多。为此投资商没少想和我谈话，但是我对他们真的没有信心，所以不管如何我也是一定要离开。在家后，成为待业一族，可以安心的陪媳妇，带着lion（家里养的松狮）开心的玩耍，由于加班的原因，身体素质差了很多，开始学习网球增加体育锻炼。把整个十月都留给自己，算是补偿自己和爱人的一个假期。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;总结：1.选择一个公司不要只看目前的管理团队，最好还能了解下公司的投资公司，如果是国内的，风险明显很大，尤其是不专业，会插手管理团队事务。&lt;/p&gt;&#xD;
&lt;p&gt;2.选择一个公司不能看到只有好的宏伟蓝图，还要看是否能够坚定不移的执行，而不是执行中会发生下行的转变。&lt;/p&gt;&#xD;
&lt;p&gt;3.选择一个公司一定要维护自己的权利，不要找不给公司上保险的公司，这种公司最不稳定，尤其不把员工利益放在眼里。&lt;/p&gt;&#xD;
&lt;p&gt;4.期权很重要，也很不重要。当你对未来有预期的时候他是美好的，当你对未来没预期的时候，他是空气。&lt;/p&gt;&#xD;
&lt;p&gt;5.当管理团队是上升趋势的时候一定要坚持，是下降趋势的时候一定要不犹豫的离开。&lt;/p&gt;&#xD;
&lt;p&gt;6.技术不是万能的，当你一腔热血的以为你的技术能给公司带来新鲜活力的时候，你就错了。&lt;/p&gt;&#xD;
&lt;p&gt;7.公司的成功是一个团队努力的结果，任何一个环节有问题都会影响到整个公司。&lt;/p&gt;&#xD;
&lt;p&gt;8.物流、采购、推广对于电子商务是最大的问题，也最不是问题。关键在于你能不能找对人。&lt;/p&gt;&#xD;
&lt;p&gt;9.如果一个公司尽管再有钱，但一开始就很抠，给你开了一个很低薪水，那么不要指望他后来会大方。&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;PS，这边文章虽然和.NET无关，就是把埋在心里的东西乱糟糟吐槽出来，好受了很多，虽然无法把全部都写出来，但是状态的转变大体也都出来了。对于能看到这的朋友，说声谢谢。　　&lt;/p&gt;&#xD;
&lt;p&gt;THE END&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: red; "&gt;&amp;nbsp;后记：感谢所有的园友，给我建议同时还帮我指正了文章的一些错误，同时增加了一个第九条，特此感谢。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1872381.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/11/09/1872381.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/06/02/1750138.html</id><title type="text">什么是电子商务的核心竞争力</title><summary type="text">首先,提一个问题.是什么驱使你第一次上网来买东西?我想很多人的回答应该是便宜.再问个问题是什么驱使你第二次,第三次,第N次继续在上网购买东西?这时候答案可能有很多种,便宜,方便,可靠,信任某卖家等等.</summary><published>2010-06-02T09:00:00Z</published><updated>2010-06-02T09:00:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/06/02/1750138.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/06/02/1750138.html"/><content type="html">&lt;p&gt;首先,提一个问题.是什么驱使你第一次上网来买东西?我想很多人的回答应该是便宜.&lt;/p&gt;&#xD;
&lt;p&gt;再问个问题是什么驱使你第二次,第三次,第N次继续在上网购买东西?这时候答案可能有很多种,便宜,方便,可靠,信任某卖家等等.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;由此我们可以想像出电子商务的发展一共要经历四个发展阶段&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: red; "&gt;第一个是突破阶段,就是要便宜&lt;/span&gt;.便宜到能让没试过在网上购物的人都动心的程度!这个是个漫长过程,是个用户培养的阶段,在国内看来就是从2003年7月11日至2005年初.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;其标志性事件有易趣的成立,淘宝的成立,支付宝的成立.在这个阶段中淘宝凭借其便宜到不能再便宜的价格(免费)优势疯狂掠夺这个成长期的用户,由于其免费政策不仅使很多用户加入了这个C2C大军,而且一举击败了前辈老大哥易趣.淘宝+支付宝的模式不仅解决了长久以来困扰互联网购物的支付,物流,信誉三大问题,同时也带来的人们生活的改变,为推动社会的发展添加了浓重的一笔.&lt;/p&gt;&#xD;
&lt;p&gt;阶段特色:萌芽期,用户要求不高,低价为王. &lt;/p&gt;&#xD;
&lt;p&gt;核心竞争力:&lt;span style="color: red; "&gt;便宜!便宜!更便宜!&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: red; "&gt;第二个阶段是高速扩张阶段,要的不仅仅是便宜&lt;/span&gt;!这个过程不仅发展火爆而且让无数投资人血脉愤张.由C2C培养了巨大的用户群,使得B2C的条件成熟.&lt;/p&gt;&#xD;
&lt;p&gt;这个时间在2005年至2008年.一时间国内的电子商务百花齐放,各类商城如雨后春笋般成长起来.淘宝此事就像一个处于成长期的大男孩,继续着超高速的成长,但是有着少年淘宝的烦恼.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;用户在经历了便宜,便宜,再便宜的阶段,已经从内心完全接受了网购,甚至把网购看的比线下购买更重要,对网购的期望值更高.&lt;/p&gt;&#xD;
&lt;p&gt;就是这些用户的需求带来了少年淘宝的烦恼.用户现在不止想要便宜的价格,还有很多用户想要品质优秀的商品.而淘宝的交易规则使得一些买了高仿,精仿商品的用户投诉无门,而且在由于一些职业卖家对淘宝商品排列规则了如指掌,同归规则去推一些广告性质的信息,使得买家在淘宝海量的信息中迷失,不知道该选择那个卖家.这是C2C必然要面临的问题.这个阶段里少年淘宝也在不断的努力使自己更加成熟,淘宝推出的淘宝商城就是一个解决方式,目前来看还不能成为淘宝上的主流购买方式.但是,已经取得了显著的成效.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看到商机的B2C公司这个时候站了出来,跟买家说,来我这吧.B2C公司以更专业,更可靠的形象向买家展示着自己的魅力,依然一个商务人士的派头,起初大家还是怀疑,但是低廉的价格使得买家去尝试,一试之下发现的确是比个人卖家要专业,东西还保真.买家搭上了B2C公司这条船,只要和C2C相比价格差不多就都从B2C这里购买.所以信誉是B2C公司的生命,无法解决信誉将使B2C公司倒在前行的路上.&lt;/p&gt;&#xD;
&lt;p&gt;在这个百花齐放的阶段,虽然我们无法看到热闹的交易场面但是我们的头脑里可以浮现出一个场面.一堆人在摆地摊,场内挤满了人,场边有几个门脸精品店.&lt;/p&gt;&#xD;
&lt;p&gt;阶段特色:培养,用户要求提高,不仅价格要便宜而且还要保真,保质.&lt;/p&gt;&#xD;
&lt;p&gt;核心竞争力:&lt;span style="color: #ff0000; "&gt;便宜,&lt;/span&gt;&lt;span style="color: #ff0000; "&gt;信誉两条腿&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: red; "&gt;第三个阶段是差异化竞争期,便宜还是左右你选择的第一因素么?&lt;/span&gt;便宜固然重要,但是已经无法左右人们的选择.在经历了C2C平台各种问题的情况下,买家不仅希望选择更简单,货真价实,价格不贵,而且希望服务更好.&lt;/p&gt;&#xD;
&lt;p&gt;这个阶段时间从2008至2015.这个时间金融海啸到处肆虐,是全球金融业的寒冬.但是却是&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在试试看在淘宝在开一个店铺是否像前几年那样很容易就可以成功,现在如果不通过一些"特殊手段"很难有人买你的东西.所以淘宝发展到今天对于新商家门槛越来越高.这也是淘宝需要面对的一个困境,也可能是淘宝的一个机遇,如果能够妥善处理这个问题,对淘宝来说说不定就是一个扭亏为盈的机遇.C2C类网站面临的另一个问题是物流,像今天强大的B2C网站都有自己的物流团队,无论是从成本上还是服务上,都有着强大的优势(B2C部分有论述).而个人商家只能依托现在服务并不怎么样的北京3天内,外地5天左右到货,而且经常发生丢单,换货事件的有些"拙劣"的来支撑,如何能解决这个问题?如果把这个危险变成机会,我想老马肯定已经心中有蓝图了.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;B2C公司发展到这个阶段已经完全可以直起腰板说话了.B2C公司依托着强大的资本实力和卓越的信誉深入产业链,发展了自己的仓储和物流,依托电子信息化把服务做到最好.比如目前做的比较成功的B2C公司已经可以实现同城上午订货,下午到货.B2C公司正在深化产业链改革,不仅优化流程也是商品和消费者之间更扁平了,最重要的是他们的订单量完全可以让自己挺起腰板和供货商对话了.这个阶段的B2C公司商品价格不仅不会比C2C网站的价格均价低,还会略高.因为这个时期B2C公司卖的不是商品了,而是服务,是用户体验!&lt;/p&gt;&#xD;
&lt;p&gt;阶段特色:成长期,商家处于市场竞争主动要求提高服务品质.&lt;/p&gt;&#xD;
&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; "&gt;&lt;span style="color: #ff0000; "&gt;核心竞争力:价格比市面便宜,实体店都无法比拟服务和体验&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000; "&gt;第四个阶段是革命阶段,由于深化产业链改革进货进一步压低,成本降低,价格下降.&lt;/span&gt;电子商务发展到极致,成为购物的第一选择.&lt;/p&gt;&#xD;
&lt;p&gt;这个阶段时间 2015至未来....&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;到了这个时期B2C和C2C之间的通路被直接打开了,属于你中有我,我中有你的阶段.各大平台和领域开始了混战和兼并,同时一个行业内只会存在一家最大的公司,下携消费者,上压制造商,以价格优势开始对实体经济开战.&lt;/p&gt;&#xD;
&lt;p&gt;这个时期不是我悲观,而是电子商务特有的,实体店无法满足的条件会使大多数实体产业巨头遭受巨创!&lt;/p&gt;&#xD;
&lt;p&gt;而且随着技术的发展和基础设施的建设,商品虚拟体验的技术一定会实现,让你在购物之前就知道是否适合你,是否是你想要的.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;电子商务公司也会推出自己的云服务,让消费者感觉就在自己身边.为什么电子商务公司会推出自己的云服务,而不是托管?因为电子商务公司最重要的是什么?是数据!明白否?&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;例如到了这个时期,号称中国硅谷地区的商城会客源萧条一部分原因是商家欺诈,欺骗消费者,坏了自己的牌子,而在线购物反而更放心.&lt;/p&gt;&#xD;
&lt;p&gt;再如一些专业卖场只能白天营业,本来就利薄如果24小时营业会急剧导致成本上升.而电子商务可以7*24小时营业每天一起床,早上一开门昨晚订的货就到家门口了,而且不满意可以拒收全额退款,连邮费都免单了.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;诸如此类的差异导致电子商务会革了这部分卖场的命.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;阶段特色:成熟期,成为主流购物方式.&lt;/p&gt;&#xD;
&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px; "&gt;&lt;span style="color: #ff0000; "&gt;核心竞争力:你花钱买的不是商品,不是寂寞,而是购物体验!&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;电子商务的浪潮已经一浪高过一浪,你是否准备好了?&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;div &gt;&#xD;
&lt;p&gt;转载请遵循此协议：&lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" target="_blank"&gt;署名 - 非商业用途 - 保持一致&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;并保留此链接：&lt;a href="http://dotnet010.cnblogs.com/" target="_blank"&gt;http://dotnet010.cnblogs.com/&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1750138.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/06/02/1750138.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/05/23/1491040.html</id><title type="text">Subtext分析3-Subtext.Akismet</title><summary type="text">Akismet是Subtext的一个非常经典的应用方式，将过滤系统通过webservice完全托管给了Akismet，从而减小了自己的负担，相对来说还不会影响客户体验。我们通过结构可以看到IComment，Comment，HttpClient，AkismetClient，InvalidResponseException。IComment是评论接口，Comment继承了IComment，作用是封装了...</summary><published>2010-05-23T02:17:00Z</published><updated>2010-05-23T02:17:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1491040.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1491040.html"/><content type="html">&lt;p&gt;Akismet是Subtext的一个非常经典的应用方式，将过滤系统通过webservice完全托管给了Akismet，从而减小了自己的负担，相对来说还不会影响客户体验。&lt;/p&gt;&#xD;
&lt;p&gt;我们通过结构可以看到IComment，Comment，HttpClient，AkismetClient，InvalidResponseException。&lt;/p&gt;&#xD;
&lt;p&gt;IComment是评论接口，Comment继承了IComment，作用是封装了ip地址，url，评论等一些基础属性。&lt;/p&gt;&#xD;
&lt;p&gt;HttpClient说起来就就一个方法PostRequest，实际上是实现了一个post请求，并且读取返回的数据。&lt;/p&gt;&#xD;
&lt;p&gt;InvalidResponseException没什么好说的，处理200异常的。&lt;/p&gt;&#xD;
&lt;p&gt;AkismetClient是具体操作，调用HttpClient把Comment中的内容发送，InvalidResponseException来管理异常&lt;br /&gt;在第一次启动时VerifyApiKey方法调用密钥，此后不用调用。&lt;br /&gt;通过SubmitComment方法来拼接要发送的内容。&lt;br /&gt;CheckCommentForSpam确定是否是垃圾评论，返回true是垃圾信息&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 643px; height: 524px" height="524" alt="" src="http://images.cnblogs.com/cnblogs_com/dotnet010/190671/r_Subtext1.jpg" width="643" border="0" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Akismet的配置内容在web.config下，不多解释了，看名字就能知道个大概了。&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;1&lt;/span&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ProxyHost&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;""&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;2&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ProxyPort&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;""&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;3&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ProxyUsername&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;""&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;4&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ProxyPassword&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;""&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;5&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Aggregate&amp;nbsp;Blog&amp;nbsp;Stuff&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;6&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;AggregateEnabled&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;false&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;7&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;AggregateTitle&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;A&amp;nbsp;Subtext&amp;nbsp;Community&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;8&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;AggregateUrl&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://localhost/%22/&amp;gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;9&lt;/span&gt;&lt;span style="color: #800000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;AggregateDescription&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;.NET&amp;nbsp;by&amp;nbsp;Subtext&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #000000"&gt;UI&amp;nbsp;Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PostCollection&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Post&amp;nbsp;Categories&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ArticleCollection&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Article&amp;nbsp;Categories&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ImageCollection&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Image&amp;nbsp;Galleries&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;add&amp;nbsp;key&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Archives&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Archives&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;余下的代码说明里都有说明，是个简单但经典的应用，更多的是理念。如果想要改变验证方式的话就可以改写此处，自己接管评论管理，我国制度于他国不同所以还是建议自己管理。&lt;/p&gt; &lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1491040.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1491040.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741933.html</id><title type="text">[转]序列化与反序列化，及Json序列化反序列化</title><summary type="text">转自:http://www.cnblogs.com/jams742003/序列化是将对象状态转换为可保持或可传输的格式的过程，反序列化则过程相反。用于存储和传输数据。（一）asp.net序列化与反序列化.net提供多种序列化类（1）BinaryFormatter 类名字空间：System.Runtime.Serialization.Formatters.Binary这个类用于以二进制格式将对象或整...</summary><published>2010-05-23T02:14:00Z</published><updated>2010-05-23T02:14:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741933.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741933.html"/><content type="html">&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;转自:&lt;a href="http://www.cnblogs.com/jams742003/" target="_blank"&gt;http://www.cnblogs.com/jams742003/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;序列化是将对象状态转换为可保持或可传输的格式的过程，反序列化则过程相反。用于存储和传输数据。&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt; text-indent: -36pt; margin: 0cm 0cm 0pt 36pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas; font-size: 12pt"&gt;（一）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas; font-size: 12pt"&gt;asp.net&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: 12pt"&gt;序列化与反序列化&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;.net&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;提供多种序列化类&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;（&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;BinaryFormatter &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;类&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;名字空间：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;System.Runtime.Serialization.Formatters.Binary&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;这个类用于以二进制格式将对象或整个连接对象图形序列化和反序列化&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;构造器两个：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;BinaryFormatter()&lt;br /&gt;BinaryFormatter(ISurrogateSelector,&amp;nbsp;StreamingContext)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;介绍它的两个主要方法：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1 Serialize&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;将对象或连接对象图形序列化为给定流&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;它有两个重载：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;Serialize(Stream,&amp;nbsp;Object)&lt;br /&gt;Serialize(Stream,&amp;nbsp;Object,Header[])&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;类&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;Customer&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Unid&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Name&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Call&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;下边通过示例来测试序列化方法&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;Serialize&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestSerialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&amp;nbsp;{Unid&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,Name&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;宋江&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,Call&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;89589689&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;test.dat&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Create);&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BinaryFormatter&amp;nbsp;formatter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;BinaryFormatter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;formatter.Serialize(fs,&amp;nbsp;customer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;测试时，这个会抛出异常：类型&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;&amp;#8220;SerializeTest.Customer&amp;#8221;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;未标记为可序列化。所以要在&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;Customer&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;类上添加修饰标签&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;[Serializable]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;测试，在&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;bin\debug&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;文件夹中可以看到&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;test.dat&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;文件。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;2 Deserialize&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;将流反序列化为对象图形，它也有两个重载&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;Deserialize(Stream)&amp;nbsp;&lt;br /&gt;Deserialize(Stream,&amp;nbsp;HeaderHandler)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;通过示例来测试从流进行反序列化&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestDeserialize()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;test.dat&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Open);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BinaryFormatter&amp;nbsp;formatter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;BinaryFormatter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;customer&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;formatter.Deserialize(fs)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;as&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(customer.Name);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;结果输出：宋江&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;（&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;2&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;SoapFormatter&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;类&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;名字空间：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;System.Runtime.Serialization.Formatters.Soap&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;以&lt;/span&gt;&lt;span style="font-family: Consolas"&gt; SOAP &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;格式将对象或整个连接对象的图形序列化和反序列化。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;SOAP&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;就是&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;simple object access protocol&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;的缩写，简单对象传输协议。是一种轻量的，简单的，基于&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;xml&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;的协议。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;这个要添加对&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;System.Runtime.Serialization.Formatters.Soap.dll&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;的引用&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;构造器：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: #2b91af"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;SoapFormatter&amp;nbsp;xx&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;SoapFormatter()&lt;br /&gt;SoapFormatter(ISurrogateSelector,&amp;nbsp;StreamingContext)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;主要介绍其中&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;2&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;个方法&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1 &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;Serialize&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;Serialize(Stream,&amp;nbsp;Object)&amp;nbsp;&lt;br /&gt;Serialize(Stream,&amp;nbsp;Object,&amp;nbsp;Header[]&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestSoapSerialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&amp;nbsp;{&amp;nbsp;Unid&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;宋江&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Call&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;89589689&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;soaptest.dat&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Create);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SoapFormatter&amp;nbsp;formatter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SoapFormatter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;formatter.Serialize(fs,&amp;nbsp;customer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;打开&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;bin\debug&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;中的&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;soaptest.dat&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;文件，这就是&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;soap&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;格式。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;2 Deserialize&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;反序列化&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;soap&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;格式&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;Deserialize(Stream)&amp;nbsp;&lt;br /&gt;Deserialize(Stream,&amp;nbsp;HeaderHandler)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;其它的不多说了。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestSoapDeserialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;soaptest.dat&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Open);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SoapFormatter&amp;nbsp;formatter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SoapFormatter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;formatter.Deserialize(fs)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;as&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(customer.Name);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;（&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;3&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;XmlSerializer&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;类&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;将对象序列化到&lt;/span&gt;&lt;span style="font-family: Consolas"&gt; XML &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;文档中和从&lt;/span&gt;&lt;span style="font-family: Consolas"&gt; XML &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;文档中反序列化对象&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;名字空间：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;System.Xml.Serialization&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;构造方法太多，不列举了，可以参考帮助&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt; text-indent: -18pt; margin: 0cm 0cm 0pt 18pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1 &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;Serialize&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;拿出一个来说：&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Serialize(XmlWriter&amp;nbsp;xmlWriter,Object&amp;nbsp;o)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestXmlSerialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&amp;nbsp;{&amp;nbsp;Unid&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;宋江&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Call&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;89589689&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;xmltest.xml&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Create);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlSerializer&amp;nbsp;formatter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;XmlSerializer(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(Customer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;formatter.Serialize(fs,&amp;nbsp;customer);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;结果可以到&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;debug\bin&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;里查看。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;2 Deserialize&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestXmlDeserialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;xmltest.xml&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Open);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlSerializer&amp;nbsp;formatter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;XmlSerializer(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(Customer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;formatter.Deserialize(fs)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;as&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(customer.Name);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt; text-indent: -36pt; margin: 0cm 0cm 0pt 36pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas; font-size: 12pt"&gt;（二）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas; font-size: 12pt"&gt;Json&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: 12pt"&gt;序列化与反序列化&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;Json&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;相关可见：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;&lt;a href="http://www.cnblogs.com/jams742003/category/225387.html" target="_blank"&gt;http://www.cnblogs.com/jams742003/category/225387.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;Json&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;序列化和反序列化指的是：对象序列化为&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;JSON&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;，并可用于从&lt;/span&gt;&lt;span style="font-family: Consolas"&gt; JSON &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;反序列化对象&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;在&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;.net 3.5&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;中&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;名字空间：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;System.Runtime.Serialization.Json&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;但程序集是：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt; System.ServiceModel.Web.dll&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;（&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;DataContractJsonSerializer&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;类&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;构造方法很多。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;介绍这个类其中&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;2&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;个方法：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1 WriteObject&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;有好种重载，这里测试一个：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;WriteObject(Stream&amp;nbsp;stream,Object&amp;nbsp;graph)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;测试：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestJsonSerialize()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&amp;nbsp;{&amp;nbsp;Unid&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;宋江&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Call&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;89589689&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataContractJsonSerializer&amp;nbsp;ds&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DataContractJsonSerializer(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(Customer));&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;json.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Create);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ds.WriteObject(fs,&amp;nbsp;customer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;进行&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;Json&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;序列化时，类型不必添加修饰标签&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;在&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;bin\debug&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;里可以看到&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;json&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;串。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;有关&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;json&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;串请见：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;&lt;a href="http://www.cnblogs.com/jams742003/archive/2009/12/29/1634764.html" target="_blank"&gt;http://www.cnblogs.com/jams742003/archive/2009/12/29/1634764.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;2 ReadObject&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;重载很多。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Object&amp;nbsp;ReadObject(Stream&amp;nbsp;stream)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;测试：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestJsonDeserialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataContractJsonSerializer&amp;nbsp;ds&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DataContractJsonSerializer(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(Customer));&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileStream&amp;nbsp;fs&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileStream(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;json.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;FileMode.Open);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;cc&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ds.ReadObject(fs);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs.Close();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;（&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;2&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;JavaScriptSerializer&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;类&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;为启用&lt;/span&gt;&lt;span style="font-family: Consolas"&gt; AFAX &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;的应用程序提供序列化和反序列化功能&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;名字空间：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;System.Web.Script.Serialization&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;程序集：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;System.Web.Extensions&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;（在&lt;/span&gt;&lt;span style="font-family: Consolas"&gt; System.Web.Extensions.dll &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;中）&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;说其中&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;2&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;个方法&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1 Serialize&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;Serialize(Object)&lt;br /&gt;Serialize(Object,&amp;nbsp;StringBuilder)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestJsSerialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&amp;nbsp;{&amp;nbsp;Unid&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;宋江&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Call&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;89589689&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JavaScriptSerializer&amp;nbsp;js&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;JavaScriptSerializer();&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(js.Serialize(customer));&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;输出串：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;{"Unid":1,"Name":"&lt;/span&gt;&lt;span style="font-family: 新宋体"&gt;宋江&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;","Call":"89589689"}&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;2 Deserialize&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestJsDeserialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;str&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;File.ReadAllText(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;jsjson.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JavaScriptSerializer&amp;nbsp;js&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;JavaScriptSerializer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;js.Deserialize&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Customer&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(str);&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(customer.Name);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;（&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;3&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;）&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;Json.net&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;这是一个第三方工具&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;请见：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;&lt;a href="http://www.cnblogs.com/jams742003/archive/2009/11/04/1595737.html" target="_blank"&gt;http://www.cnblogs.com/jams742003/archive/2009/11/04/1595737.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;名字空间：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;Newtonsoft.Json&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;添加&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;Newtonsoft.Json.dll&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;程序集&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;其中&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;2&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;个方法：&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;1 &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;SerializeObject&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;span style="font-family: Consolas; color: blue"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestJsonnetSerialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Customer&amp;nbsp;{&amp;nbsp;Unid&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;宋江&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Call&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;89589689&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;strJson&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;JsonConvert.SerializeObject(customer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StreamWriter&amp;nbsp;sw&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;File.CreateText(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;jsonnet.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sw.Write(strJson);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sw.Close();&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20pt" align="left"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;2 &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: Consolas"&gt;DeserializeObject&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;方法&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Consolas"&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TestJsonnetDeserialize()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;str&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;File.ReadAllText(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;jsonnet.txt&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Customer&amp;nbsp;customer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;JsonConvert.DeserializeObject&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Customer&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(str);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(customer.Name);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: 宋体"&gt;更多关于&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;json.net&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;的请见：&lt;/span&gt;&lt;span style="font-family: Consolas"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: 20pt"&gt;&lt;span style="font-family: Consolas"&gt;&lt;a href="http://www.cnblogs.com/jams742003/archive/2009/11/04/1595737.html" target="_blank"&gt;http://www.cnblogs.com/jams742003/archive/2009/11/04/1595737.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1741933.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741933.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741931.html</id><title type="text">[转]JSON序列化与反序列化</title><summary type="text">方法一：引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化序列化类：Personnel[代码]执行序列化反序列化：代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-...</summary><published>2010-05-23T02:11:00Z</published><updated>2010-05-23T02:11:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741931.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741931.html"/><content type="html">&lt;p&gt;&lt;strong&gt;方法一：&lt;/strong&gt;引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化&lt;/p&gt;&#xD;
&lt;p&gt;序列化类：Personnel&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Personnel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Id&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Name&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;执行序列化反序列化：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('51da8fa7-538e-4d9c-9408-dda3c32581f2')"&gt;&lt;img id="code_img_opened_51da8fa7-538e-4d9c-9408-dda3c32581f2"  onclick="cnblogs_code_hide('51da8fa7-538e-4d9c-9408-dda3c32581f2',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" jquery1274579178937="5"&gt; &#xD;
&lt;div style="display: block" id="cnblogs_code_open_51da8fa7-538e-4d9c-9408-dda3c32581f2"  jquery1274579178937="3"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Personnel&amp;nbsp;personnel&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Personnel();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;personnel.Id&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;personnel.Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;小白&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JavaScriptSerializer&amp;nbsp;jsonSerializer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;JavaScriptSerializer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;执行序列化&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;r1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;jsonSerializer.Serialize(personnel);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;执行反序列化&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Personnel&amp;nbsp;_Personnel&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;jsonSerializer.Deserialize&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Personnel&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(r1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;r1输出结果：{"Id":1,"Name":"小白"} &lt;/p&gt;&#xD;
&lt;p&gt;可以使用 ScriptIgnore属性标记不序列化公共属性或公共字段。&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Personnel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ScriptIgnore]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Id&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Name&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;r1输出结果：{"Name":"小白"} &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;方法二：&lt;/strong&gt;引入&amp;nbsp;System.Runtime.Serialization.Json命名空间使用 DataContractJsonSerializer类实现序列化&lt;/p&gt;&#xD;
&lt;p&gt;序列化类：People&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;People&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Id&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Name&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;执行序列化反序列化&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('7ed53bc9-d7c5-4f8c-bcb0-342b243b7bcc')"&gt;&lt;img style="display: none" id="code_img_opened_7ed53bc9-d7c5-4f8c-bcb0-342b243b7bcc"  onclick="cnblogs_code_hide('7ed53bc9-d7c5-4f8c-bcb0-342b243b7bcc',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_7ed53bc9-d7c5-4f8c-bcb0-342b243b7bcc" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;People&amp;nbsp;people&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;People();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;people.Id&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;people.Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;小白&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataContractJsonSerializer&amp;nbsp;json&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DataContractJsonSerializer(people.GetType());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;szJson&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;""&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;序列化&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(MemoryStream&amp;nbsp;stream&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;MemoryStream())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;json.WriteObject(stream,&amp;nbsp;people);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;szJson&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Encoding.UTF8.GetString(stream.ToArray());&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;反序列化&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(MemoryStream&amp;nbsp;ms&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;MemoryStream(Encoding.UTF8.GetBytes(szJson)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataContractJsonSerializer&amp;nbsp;serializer&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DataContractJsonSerializer(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(People));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;People&amp;nbsp;_people&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(People)serializer.ReadObject(ms);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;szJson输出结果：{"Id":1,"Name":"小白"}&lt;/p&gt;&#xD;
&lt;p&gt;可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化，DataMember:定义序列化属性参数，使用DataMember属性标记字段必须使用DataContract标记类 否则DataMember标记不起作用。&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('5c3550cc-bb1d-4dce-97ee-962e44b39c5a')"&gt;&lt;img style="display: none" id="code_img_opened_5c3550cc-bb1d-4dce-97ee-962e44b39c5a"  onclick="cnblogs_code_hide('5c3550cc-bb1d-4dce-97ee-962e44b39c5a',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_5c3550cc-bb1d-4dce-97ee-962e44b39c5a" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;People&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataMember(Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;id&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Id&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[IgnoreDataMember]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Name&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;输出结果: {"id":1}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1741931.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741931.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741928.html</id><title type="text">[转]WCF一个Host实现多契约服务</title><summary type="text">因为最初错误的理解了Contract与Service的关系，把每个业务定义了相应的Contract与Service并将对应的Service一一继承相应的Contract，因为在WCF每个host只能提供一个Service所以导致，当你的服务很多的时候你要定义N多个host看下面演示提供User（用户）和Order（订单）两个服务：开启多个host代码：[代码]开启多个host配置代码代码 Code...</summary><published>2010-05-23T02:10:00Z</published><updated>2010-05-23T02:10:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741928.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741928.html"/><content type="html">&lt;p&gt;因为最初错误的理解了Contract与Service的关系，把每个业务定义了相应的Contract与Service并将对应的Service一一继承相应的Contract，因为在WCF每个host只能提供一个Service所以导致，当你的服务很多的时候你要定义N多个host&lt;br /&gt;看下面演示提供User（用户）和Order（订单）两个服务：&lt;/p&gt;&#xD;
&lt;p&gt;开启多个host代码：&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;ServiceHost&amp;nbsp;host1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ServiceHost(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(UserService));&amp;nbsp;&lt;br /&gt;host1.Open();&lt;br /&gt;ServiceHost&amp;nbsp;host2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ServiceHost(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(OrderService));&amp;nbsp;&lt;br /&gt;host2.Open();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;开启多个host配置&lt;/p&gt;&#xD;
&lt;p&gt;代码&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('fd60d498-6076-4bf2-9f5c-0b803b393e32')"&gt;&lt;img id="code_img_opened_fd60d498-6076-4bf2-9f5c-0b803b393e32"  onclick="cnblogs_code_hide('fd60d498-6076-4bf2-9f5c-0b803b393e32',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_fd60d498-6076-4bf2-9f5c-0b803b393e32"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;services&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;service&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Wcf.Services.UserService"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="net.tcp://localhost:8001/UserService"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;binding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="netTcpBinding"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&amp;nbsp;contract&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Wcf.Contract.IUserService"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;service&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;service&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Wcf.Services.OrderService"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="net.tcp://localhost:8001/OrderService"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&amp;nbsp;binding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="netTcpBinding"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;contract&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Wcf.Contract.IOrderService"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;service&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;services&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;参考：&lt;br /&gt;WCF中ServiceHost能不能host多个服务？&lt;br /&gt;&lt;a href="http://www.cnblogs.com/vivid-stanley/archive/2007/02/21/653280.html" target="_blank"&gt;http://www.cnblogs.com/vivid-stanley/archive/2007/02/21/653280.html&lt;/a&gt;&lt;br /&gt;Host多个WCF服务(Self-host) &lt;br /&gt;&lt;a href="http://www.cnblogs.com/levinknight/archive/2007/05/25/760176.html" target="_blank"&gt;http://www.cnblogs.com/levinknight/archive/2007/05/25/760176.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;后来发现Service是可以和业务类型没关系的，它仅用来表示当前host能提供的服务，不要理解Service要根据不同的业务类型来切分，Contract才是和业务类型有关系的原则上要按照业务类型来切分。然后其实WCF并不推荐在应用程序域中创建多个ServiceHost实例。如果要托管多个服务，完全可以在一个host中通过多个Endpoint公开多个WCF服务的办法来实现，而每个Endpoint都可以对应相应的Contract。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;User契约代码:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Wcf.Contract&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ServiceContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;interface&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IUserService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[OperationContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Edit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Order契约代码:&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Wcf.Contract&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ServiceContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;interface&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IOrderService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[OperationContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Add();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Service代码:让所有功能在一个Service上实现&lt;/p&gt;&#xD;
&lt;p&gt;代码&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('04bcee2d-607e-4b17-b72e-3aee7c82db4f')"&gt;&lt;img id="code_img_opened_04bcee2d-607e-4b17-b72e-3aee7c82db4f"  onclick="cnblogs_code_hide('04bcee2d-607e-4b17-b72e-3aee7c82db4f',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_04bcee2d-607e-4b17-b72e-3aee7c82db4f"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Wcf.Services&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;MallService&amp;nbsp;:&amp;nbsp;IUserService,&amp;nbsp;IOrderService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Add()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;NotImplementedException();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Edit()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;NotImplementedException();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;当然这里可以使用 partial 关键字 把代码放在不同的文件上，来达到物理上的切分比如：&lt;br /&gt;文件UserService.cs&lt;br /&gt;&amp;nbsp;public partial&amp;nbsp; class MallService : IUserService&lt;br /&gt;文件 OrderService.cs&lt;br /&gt;&amp;nbsp;public partial&amp;nbsp; class MallService : IOrderService&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;host代码&lt;/p&gt;&#xD;
&lt;p&gt;代码&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('2c55e8fd-806b-48d7-8898-1525c73447dd')"&gt;&lt;img id="code_img_opened_2c55e8fd-806b-48d7-8898-1525c73447dd"  onclick="cnblogs_code_hide('2c55e8fd-806b-48d7-8898-1525c73447dd',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_2c55e8fd-806b-48d7-8898-1525c73447dd"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Wcf.Host&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Program&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Main(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(ServiceHost&amp;nbsp;host&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ServiceHost(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000"&gt;(Wcf.Services.MallService)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;host.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.Read();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;配置文件：在一个service上定义多个endpoint使用不同的契约接口&lt;/p&gt;&#xD;
&lt;p&gt;代码&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('fa4784a5-b615-4a53-9b45-c9cd654326b0')"&gt;&lt;img id="code_img_opened_fa4784a5-b615-4a53-9b45-c9cd654326b0"  onclick="cnblogs_code_hide('fa4784a5-b615-4a53-9b45-c9cd654326b0',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_fa4784a5-b615-4a53-9b45-c9cd654326b0"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;services&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;service&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Wcf.Services.MallService"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;behaviorConfiguration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="MallServiceBehaviors"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;contract&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Wcf.Contract.IUserService"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;binding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="basicHttpBinding"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;address&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;contract&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Wcf.Contract.IOrderService"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;binding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="basicHttpBinding"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoint&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;host&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;baseAddresses&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;baseAddress&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://localhost:8899/MallService%22/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/baseAddresses&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/host&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/service&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/services&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;behaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;serviceBehaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;behavior&amp;nbsp;name="&lt;/span&gt;&lt;span style="color: #ff0000"&gt;MallServiceBehaviors"&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;serviceMetadata&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;httpGetEnabled&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="true"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;behavior&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;serviceBehaviors&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;behaviors&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;system.serviceModel&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;客户端代码：客户端可以根据不同endpoint的契约实现不同的类&lt;/p&gt;&#xD;
&lt;p&gt;代码&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('5c399791-7c74-4399-ad26-fd44b6b0856f')"&gt;&lt;img id="code_img_opened_5c399791-7c74-4399-ad26-fd44b6b0856f"  onclick="cnblogs_code_hide('5c399791-7c74-4399-ad26-fd44b6b0856f',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_5c399791-7c74-4399-ad26-fd44b6b0856f"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Wcf.Test&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Program&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Main(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UserServiceClient&amp;nbsp;user&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;UserServiceClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;user.Edit();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OrderServiceClient&amp;nbsp;order&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;OrderServiceClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;order.Add();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以后如果要对WCF应用程序扩展只需定义契约 然后partial&amp;nbsp; class MallService : 契约接口 实现代码， 并在host的在配置文件中加入 相应的 endpoint 即可 &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1741928.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741928.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741929.html</id><title type="text">[转]WCF分布式事务</title><summary type="text">WCF 支持分布式事务，也就是说事务可以跨越服务、进程、机器边界，在多个服务和客户端间存在。Single service/single resource transactionDistributed transactional service-oriented applicationTransaction Binding只有 TCP-、 IPC- 以及 WS-related 等 Binding 支...</summary><published>2010-05-23T02:10:00Z</published><updated>2010-05-23T02:10:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741929.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741929.html"/><content type="html">WCF 支持分布式事务，也就是说事务可以跨越服务、进程、机器边界，在多个服务和客户端间存在。&lt;br /&gt;&lt;br /&gt;Single service/single resource transaction&lt;br /&gt;&#xD;
&lt;div style="overflow-x: auto; width: 100%"&gt;&lt;a href="http://www.cnblogs.com/ejiyuan/admin/uploads/200705/02_105023_wcftrans1.gif" target="_blank"&gt;&lt;img border="0" alt="uploads/200705/02_105023_wcftrans1.gif" src="http://images.cnblogs.com/cnblogs_com/ejiyuan/02_105023_wcftrans1.gif" width="263" height="128" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Distributed transactional service-oriented application&lt;br /&gt;&#xD;
&lt;div style="overflow-x: auto; width: 100%"&gt;&lt;a href="http://www.cnblogs.com/ejiyuan/admin/uploads/200705/02_105028_wcftrans2.gif" target="_blank"&gt;&lt;img border="0" alt="uploads/200705/02_105028_wcftrans2.gif" src="http://images.cnblogs.com/cnblogs_com/ejiyuan/02_105028_wcftrans2.gif" width="428" height="185" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Transaction Binding&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;只有 TCP-、 IPC- 以及 WS-related 等 Binding 支持事务。缺省情况下，这些 Binding 并不会参与事务，需要我们显示将 TransactionFlow 属性设置为 true 才行。&lt;br /&gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;NetTcpBinding&amp;nbsp;tcpBinding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;NetTcpBinding(&amp;nbsp;);&lt;br /&gt;tcpBinding.TransactionFlow&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;或 &#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;bindings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;netTcpBinding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;binding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;nbsp;"TransactionalTCP"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;transactionFlow&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;nbsp;"true"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;netTcpBinding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;bindings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;TransactionFlow 并不会在 Metadata 中发布，也就是说我们同样需要手动设置客户端 Binding 的 TransactionFlow 属性。&lt;br /&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('ac8f09b2-9620-45d2-a087-c40cd654027f')"&gt;&lt;img id="code_img_opened_ac8f09b2-9620-45d2-a087-c40cd654027f"  onclick="cnblogs_code_hide('ac8f09b2-9620-45d2-a087-c40cd654027f',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_ac8f09b2-9620-45d2-a087-c40cd654027f"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;WSHttpBinding&amp;nbsp;binding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;WSHttpBinding();&lt;br /&gt;binding.TransactionFlow&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;ChannelFactory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;IContract&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;factory&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ChannelFactory&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;IContract&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;(binding,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://localhost:8080/myservice&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;IContract&amp;nbsp;client&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;factory.CreateChannel();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(client&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;as&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IDisposable)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(TransactionScope&amp;nbsp;scope&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TransactionScope())&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;client.Test();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scope.Complete();&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;启用可靠性(Reliability)通讯有助于减少事务失败的可能性，如果使用 NetTcpBinding、WSHttpBinding，建议做如下设置，以便启用可靠性传输。而 NetNamedPipeBinding 和 WSDualHttpBinding 默认就是可靠性，则无需再做调整。&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;NetTcpBinding&amp;nbsp;binding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;NetTcpBinding();&lt;br /&gt;binding.ReliableSession.Enabled&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;Transaction Protocols&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;WCF 使用不同的事务管理协议来控制事务执行范围(execution scope)。 &#xD;
&lt;ul &gt;&lt;li&gt;Lightweight: 仅能在同一程序域的上下文中传递事务，无法跨越程序域和服务边界。只能在服务内部或外部适用，同时它也是性能最好的一种协议。不过这种协议似乎没什么用处，因为 WCF Framework 中没有任何一种 Binding 支持此协议。&lt;/li&gt;&lt;li&gt;OleTx: 允许事务跨越程序域、进程或机器边界。使用 RPC 调用，采取 Windows 专用二进制格式。无法跨越防火墙，也不能和其他异种平台进行整合。多用于 Windows 体系的 Intranet 环境。&lt;/li&gt;&lt;li&gt;WS-Atomic(WSAT): 和 OleTx 相似，同样允许事务跨越程序域、进程或机器边界。和 OleTx 不同，WSAT 是一种工业标准，采取 HTTP 协议，TEXT 编码，可以跨越防火墙。虽然 WSAT 也能用于 Intranet，但多数时候它用于 Internet 环境。&lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;NetTcpBinding&amp;nbsp;tcpBinding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;NetTcpBinding(&amp;nbsp;);&lt;br /&gt;tcpBinding.TransactionFlow&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;tcpBinding.TransactionProtocol&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TransactionProtocol.WSAtomicTransactionOctober2004;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;或&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('2c1c8864-1dff-4ce1-bc79-1734892fa5dc')"&gt;&lt;img id="code_img_opened_2c1c8864-1dff-4ce1-bc79-1734892fa5dc"  onclick="cnblogs_code_hide('2c1c8864-1dff-4ce1-bc79-1734892fa5dc',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_2c1c8864-1dff-4ce1-bc79-1734892fa5dc"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;bindings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;netTcpBinding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;binding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;nbsp;"TransactionalTCP"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transactionFlow&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;nbsp;"true"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transactionProtocol&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;nbsp;"WSAtomicTransactionOctober2004"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;netTcpBinding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;bindings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Transactional Service&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;除了开启 Binding 的事务支持外，我们还必须通过 TransactionFlow 和 TransactionScopeRequired 来控制服务是否参与和使用事务。&lt;br /&gt;&lt;br /&gt;TransactionFlowAttribute 只能用于服务方法(Operation/Method)上，它允许我们进行不同的事务参与设置。有一点要注意，我们不能为 IsOneWay=true 的服务设置事务支持。 &lt;/p&gt;&lt;/div&gt;&#xD;
&lt;ul &gt;&lt;li&gt;TransactionFlowOption.NotAllowed: 不参与任何事务。(默认值)&lt;/li&gt;&lt;li&gt;TransactionFlowOption.Allowed: 允许参与事务。也就是说，如果调用方(客户端)和服务Binding启用了事务，则参与。&lt;/li&gt;&lt;li&gt;TransactionFlowOption.Mandatory: 强制启用事务。调用方(客户端)和服务 Binding 必须启用事务才能调用本服务。&lt;/li&gt;&lt;/ul&gt;"TransactionScopeRequired=true" 指示服务方法使用环境事务(ambient transaction)。&lt;br /&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('48d8898d-930b-4744-886d-e6fedd144e28')"&gt;&lt;img id="code_img_opened_48d8898d-930b-4744-886d-e6fedd144e28"  onclick="cnblogs_code_hide('48d8898d-930b-4744-886d-e6fedd144e28',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_48d8898d-930b-4744-886d-e6fedd144e28"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000"&gt;[ServiceContract]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;interface&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IService&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;[OperationContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;[TransactionFlow(TransactionFlowOption.Allowed)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Test();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Service&amp;nbsp;:&amp;nbsp;IService&amp;nbsp;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;[OperationBehavior(TransactionScopeRequired&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Test()&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Transaction&amp;nbsp;transaction&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Transaction.Current;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.Assert(transaction&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;==&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;Transaction modes&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;我们可以将事务分为三种类型，分别是 Client/Service transaction、Client transaction、Service transaction。&lt;br /&gt;&lt;br /&gt;1. Client/Service transaction，最常见的一种事务模型，通常由客户端或服务本身启用一个事务。&lt;br /&gt;&lt;br /&gt;设置步骤：&lt;br /&gt;(1) 选择一个支持事务的Binding，设置 TransactionFlow = true。&lt;br /&gt;(2) 设置 TransactionFlow(TransactionFlowOption.Allowed)。&lt;br /&gt;(3) 设置 OperationBehavior(TransactionScopeRequired=true)。&lt;br /&gt;&lt;br /&gt;2. Client transaction，强制服务必须参与事务，而且必须是客户端启用事务。&lt;br /&gt;&lt;br /&gt;设置步骤：&lt;br /&gt;(1) 选择一个支持事务的Binding，设置 TransactionFlow = true。&lt;br /&gt;(2) 设置 TransactionFlow(TransactionFlowOption.Mandatory)。&lt;br /&gt;(3) 设置 OperationBehavior(TransactionScopeRequired=true)。&lt;br /&gt;&lt;br /&gt;3. Service transaction，服务必须启用一个根事务，且不参与任何外部事务。&lt;br /&gt;&lt;br /&gt;设置步骤：&lt;br /&gt;(1) 选择任何一种Binding，设置 TransactionFlow = false(默认)。&lt;br /&gt;(2) 设置 TransactionFlow(TransactionFlowOption.NotAllowed)。&lt;br /&gt;(3) 设置 OperationBehavior(TransactionScopeRequired=true)。 &lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1741929.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/05/23/1741929.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dotnet010/archive/2010/03/01/1675955.html</id><title type="text">抽象类,接口,委托与事件</title><summary type="text">抽象类:是事物的本质,可以有属性,可以有默认实现.可以当做共性抽象出来的. 接口:是事务的行为,不可以有属性,也没有默认实现.只能是行为的共性抽象出来.</summary><published>2010-03-01T09:33:00Z</published><updated>2010-03-01T09:33:00Z</updated><author><name>黑羽飘舞</name><uri>http://www.cnblogs.com/dotnet010/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dotnet010/archive/2010/03/01/1675955.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dotnet010/archive/2010/03/01/1675955.html"/><content type="html">&lt;p&gt;抽象类:&lt;/p&gt;&lt;p&gt;是事物的本质,可以有属性,可以有默认实现.&lt;/p&gt;&lt;p&gt;可以当做共性抽象出来的.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;接口:&lt;/p&gt;&lt;p&gt;是事务的行为,不可以有属性,也没有默认实现.&lt;/p&gt;&lt;p&gt;只能是行为的共性抽象出来.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;委托:&lt;/p&gt;&lt;p&gt;类似于c中指针的概念,允许程序以方法为作为参数&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;事件:&lt;/p&gt;&lt;p&gt;是基于委托的,是对象产生的消息.具有多路广播功能.&lt;/p&gt;&lt;p&gt;配合委托完成多种设计模式. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;比如一个带报警功能的车门,那么门的大小尺寸,厚度,车门状态是属性,开关是默认行为,开门,关门,报警都是行为.车主和小偷是开门的主体.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;那么在设计的时候就应该是&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('b58a951b-e239-4592-ab2f-aa2cf0ee5666')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_b58a951b-e239-4592-ab2f-aa2cf0ee5666" onclick="cnblogs_code_hide('b58a951b-e239-4592-ab2f-aa2cf0ee5666',event)" style="display: none;"&gt;&lt;div id="cnblogs_code_open_b58a951b-e239-4592-ab2f-aa2cf0ee5666" &gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;开门的委托方法&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;delegate&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OpenDoor();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;门共有属性类&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;abstract&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Door&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;车门的属性在此处无用,仅为表示&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Size&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Thickness&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;车门状态&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;State&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;此处使用事件定义开关门方法&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;abstract&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Open();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;abstract&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Close();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;33&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;abstract&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ILock&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;abstract&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OnLock();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;40&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;41&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;报警功能接口&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;43&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IAlarm&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;45&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;46&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Alarm();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;47&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;48&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;50&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CarLock&amp;nbsp;:&amp;nbsp;ILock&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;51&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OnLock()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;56&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;57&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;58&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;60&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;带有报警功能的车门&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;62&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CarDoor&amp;nbsp;:&amp;nbsp;Door,IAlarm&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;63&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;64&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;myowner;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;65&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;开门者&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;66&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;event&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OpenDoor&amp;nbsp;opener;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;67&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CarDoor()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;68&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;69&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.myowner&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;CarOwner&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;70&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;72&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;74&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;开门的时候智能车门会辨别车主名字,这里假设贼和车主都报真名^^&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;75&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;76&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Open()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;77&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;78&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;79&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(opener&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;80&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;81&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(State)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;82&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;83&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;85&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(OpenDoor&amp;nbsp;temp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;opener.GetInvocationList())&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;87&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ot&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;temp();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;88&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(ot&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;myowner)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;90&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Alarm();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;91&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;93&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(temp());&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;State&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;96&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Close()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;State&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IAlarm&amp;nbsp;成员&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Alarm()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;报警方式:&amp;nbsp;tel&amp;nbsp;to&amp;nbsp;110&amp;nbsp;!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Main&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thief&amp;nbsp;thief&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Thief();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CarOwner&amp;nbsp;carowner&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CarOwner();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Main()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CarDoor&amp;nbsp;cardoor&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CarDoor();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;监听贼开车门&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cardoor.opener&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OpenDoor(thief.OpenDoor);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;监听车主开门&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cardoor.opener&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OpenDoor(carowner.OpenDoor);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cardoor.Open();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;130&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;131&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;132&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;133&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;抽象的人&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;134&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;135&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;abstract&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IPeople&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;136&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;137&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Name;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;138&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OpenDoor()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;139&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;140&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Name;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;141&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;142&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;143&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;144&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;145&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;偷车贼&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;146&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;147&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Thief&amp;nbsp;:&amp;nbsp;IPeople&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;148&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;149&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Thief()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;150&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;151&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Thief&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;152&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;153&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;154&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;155&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;156&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;车主&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;157&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;158&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CarOwner&amp;nbsp;:&amp;nbsp;IPeople&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;159&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;160&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CarOwner()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;161&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;162&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;CarOwner&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;163&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;164&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;实现的是一个抽象类,一个接口,而不是一个抽象类三个接口.因为开门和关门都是车门的共性,而报警器功能则不是每个门都有的.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;车门会判断车主的名称,如果不是车主就会触发报警.所以将开门的人设置为车门监听的对象.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dotnet010/aggbug/1675955.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dotnet010/archive/2010/03/01/1675955.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
