03 2013 档案

摘要:(承上节) .NET Framework拦截机制的设计中,在客户端和对象之间,存在着多种消息接收器,这些消息接收器组成一个链表,客户端的调用对象的过程以及调用返回实行 拦截,你可以定制自己的消息接收器,把它们插入了到链表中,来完成你对一个调用的前处理和后处理。那么调用拦截是如何构架或者说如何实现的呢?在.NET中有两种调用,一种是跨应用域(App Domain),一种是跨上下文环境(Context),两种调用均通过中间的代理(proxy),代理被分为两个部分:透明代理和实际代理。透明代理暴 露同对象一样的公共入口点,当客户调用透明代理的时候,透明代理把堆栈中的帧转换为消息(上一节提到的实现IM 阅读全文
posted @ 2013-03-26 11:56 wsion 阅读(172) 评论(0) 推荐(0) 编辑
摘要:Attribute在拦截机制上的应用从这一节开始我们讨论Attribute的高级应用,为此我准备了一个实际的例子:我们有一个 订单处理系统,当一份订单提交的时候,系统检查库存,如果库存存量满足订单的数量,系统记录订单处理记录,然后更新库存,如果库存存量低于订单的数量,系 统做相应的记录,同时向库存管理员发送邮件。为了方便演示,我们对例子进行了简化://Inventory.csusing System;using System.Collections;namespace NiwalkerDemo{ public class Inventory { private Hashtab... 阅读全文
posted @ 2013-03-26 11:54 wsion 阅读(181) 评论(0) 推荐(0) 编辑
摘要:SqlCommandGenerator类的设计SqlCommandGEnerator类的设计思路就是通过反射得到方法的参数,使用被SqlCommandParameterAttribute标记的参数来装配一个Command实例。 引用的命名空间://SqlCommandGenerator.csusing System;using System.Reflection;using System.Data;using System.Data.SqlClient;using Debug = System.Diagnostics.Debug;using StackTrace = System.Diagno 阅读全文
posted @ 2013-03-26 11:53 wsion 阅读(219) 评论(0) 推荐(0) 编辑
摘要:用于参数的Attribute在编写多层应用程序的时候,你是否为每次要写大量类似 的数据访问代码而感到枯燥无味?比如我们需要编写调用存储过程的代码,或者编写T_SQL代码,这些代码往往需要传递各种参数,有的参数个数比较多,一不 小心还容易写错。有没有一种一劳永逸的方法?当然,你可以使用MS的Data Access Application Block,也可以使用自己编写的Block。这里向你提供一种另类方法,那就是使用Attribute。下面的代码是一个调用AddCustomer存储过程的常规方法: public int AddCustomer(SqlConnection connection, 阅读全文
posted @ 2013-03-26 11:51 wsion 阅读(201) 评论(0) 推荐(0) 编辑
摘要:.NET Framework中对Attribute的支持是一个全新的功能,这种支持来自它的Attribute类。在你的程序中适当地使用这个类,或者是灵活巧 妙地利用这个类,将使你的程序获得某种在以往编程中很难做到的能力。我们来看一个例子: 假如你是一个项目开发小组中的成员,你想要跟踪项目代码检查的信息,通常你可以把代码的检查信息保存在数据库中以便查询;或者把信息写到代码的注释里面, 这样可以阅读代码的同时看到代码被检查的信息。我们知道.NET的组件是自描述的,那么是否可以让代码自己来描述它被检查的信息呢?这样我们既可以将信息 和代码保存在一起,又可以通过代码的自我描述得到信息。答案就是使用At 阅读全文
posted @ 2013-03-26 11:49 wsion 阅读(134) 评论(0) 推荐(0) 编辑
摘要:Attribute的基本概念经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行。实际上在.Net中,Attribute是一个非常重要的组 成部分,为了帮助大家理解和掌握Attribute,以及它的使用方法,特地收集了几个Attribute使用的例子,提供给大家参考。在具体的演示之前,我想先大致介绍一下Attribute。我们知道在类的成员中有property成员,二者在中文中都做属性解释,那么它们到底 是不是同一个东西呢?从代码上看,明显不同,首先就是它们的在代码中的位置不同,其次就是写法不同(Attribute必须写在一对方括符中)。什么是Atrribute首先 阅读全文
posted @ 2013-03-26 11:48 wsion 阅读(181) 评论(0) 推荐(0) 编辑
摘要:在说到异步前,先来理一下几个容易混淆的概念,并行、多线程、异步。 并行,一般指并行计算,是说同一时刻有多条指令同时被执行,这些指令可能执行于同一CPU的多核上,或者多个CPU上,或者多个物理主机甚至多个网络中。 多线程,一般指同一进程中多个线程(包含其数据结构、上下文与代码片段)协作运行。在多核计算机中多个线程将有机会同时运行于多个核上,如果线程中进行的是计算,则行成并行计算。 异步,与同步相对应,是指呼叫另一操作后,不等待其结果,继续执行之后的操作,若之后没有其他操作,当 前线程将进入睡眠状态,而CPU时间将有机会切至其他线程。在异步操作完成后通过回调函数的方式获取通知与结果。异步的实现方. 阅读全文
posted @ 2013-03-20 15:57 wsion 阅读(297) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示