摘要:上下文 您要在 C# 中构建应用程序。您需要只有一个实例的类,并且需要提供一个用于访问实例的全局访问点。您希望确保您的解决方案高效,并且能够利用 Microsoft? .NET 公共语言运行库功能。您可能还希望确保解决方案是线程安全的。 实现策略 尽管 Singleton 是一种相对简单的模式,但是存在与具体实现有关的不同权衡因素和选项。下面是一组实现策略,及其优缺点的讨论。 Singleton...
阅读全文
随笔分类 - VS 2005 & VS 2008
摘要:写程序也有一段时间了。经常是被一些很容易忽略得问题整的焦头烂额,最近就遇见了一次。特意写出来 很简单,就是在TabStrip和MultiPage一起用得时候,在MultiPage里面放了几个DropDownList控件。如图: 代码: if(!IsPostBack) { //绑定DropDwonList } 但是一点了【生成查询条件】以后所有得DropDownList就清空了,怎么也想不...
阅读全文
摘要:(一).说明 在编程过程中有没有遇到这样的问题: 偶尔因为某种原因,数据库表需要改一字段名称。比如:将: Name改为: PersonName. 接下来程序员就把所有涉及到的代码打开,找到类似: ds.Table[0].Row[n]["Name"]的语句,修改成: ds.Table[0].Row[n]["Name"]. 其实完全可以不用这么做,只加一个带结构的DataSet就OK...
阅读全文
摘要:在VS2003中用BinaryFormater来序列化一个对象时会有这样的情况存在。从一时期版本的已序列化对象进行对象创建时会因字段的增加而出现异常。通过查阅MSDN可以得知通过自定义序列化处理。 在将对象序列化之前,最好先做下面的事情,将聚合的对象尽量置空(null)否则序列化后的结果可能会很大!将事件置空!否则序列化过程中要求事件订阅者的元数据(即元数据也要序列化)。 ...
阅读全文
摘要:1、支持绑定到非公有方法的委托 关于这一点,与其说是个增强,在我看来这似乎是设计思路上略微的转变。具体地说,在.NET 1.x,像这样的代码: [Serializable] class Person ...{ public event EventHandler Birthday; } static void Main(string[] args) ...{ Person p = new P...
阅读全文
摘要:很多时候,我们需要将对象序列化成字符串保存到内存、磁盘或者 Page.ViewState 中。基于种种原因,我们希望序列化结果尽可能小,尽可能简单,即便用其他的方法(比如正则表达式)也能解析出数据。BinaryFormatter 的结果转换成字符串(或者Base64)长度太大,而 XmlSerializer 对数据类型支持有限,显然内置的序列化引擎不足以满足我们的需求,还是自己丰衣足食。 下面的...
阅读全文
摘要:最近项目开发中的传输数据是围绕Remoting而召开的,所以想把所有的数据实体都定义统一的格式,于是就写了一个基于DataTable的基类BaseModal,其他数据实体全部继承于它。此BaseModal基类还包括了一些其他的自有的属性,例如pageSize每页记录数、currentPage当前页码等等,代码如下: Code highlighting produced by Actipro Co...
阅读全文
摘要:做项目不得不考虑安全问题,但是在Remoting应用中我似乎没有找到象WebService那样现成可用的防止非授权人员随意调用的方法和验证安全机制。当然,简单一点的可以通过Remoting客户端传输一些验证代码,然后在服务端验证这些代码的合法性,以实现是否安全授权调用,但是总觉得这样比较麻烦。我也见有些人主动把客户端的IP地址获取后主动送入到Remotin g服务端验证以便识别是否合法,其实原理跟...
阅读全文
摘要:.net提供了三种序列化方式: 1.XML Serialize 2.Soap Serialize 3.Binary Serialize 第一种序列化方式对有些类型不能够序列化,如hashtable;我主要介绍后两种类型得序列化 一.Soap Serialize 使用SoapFormatter.Serialize()实现序列化.SoapFamatter在System.Runtime.Serializ...
阅读全文
摘要:1 前言 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题?部署很简单,只要点击...
阅读全文
摘要:概述 随着时间的推移,已经形成这样一种惯例:即将应用程序构建成一组组件,分布于计算机网络之间,并作为整个程序的一部分一起运行。过去,分布式应用程序逻辑需要具备组件/对象技术,例如,Microsoft® 分布式组件对象模型 (DCOM)、Object Management Group 的公共对象请求代理程序体系结构 (CORBA) 或 Sun 的远程方法调用 (RMI)。这些技术提供了可靠的、可升...
阅读全文
摘要:微软的DotNet开发绝对是属于那种入门容易提高难的技术。而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的。特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此RUP方法论也认同以架构为核心,体现4+1视图在整个软件开发过程中的重要作用。架构人员既要精通技术,又要熟悉业务,而且基本对软件生命周期各阶段的相关技术都需要有相关的积累和知识储备,而这些不经过多年的磨练是...
阅读全文
摘要:在写程序的过程中,我们可能会需要对某些功能实现异步操作,比如记录调用日志等。 提到异步,我们最容易想到的就是多线程:我们可以启动另外一个线程,把一部分工作交给另外一个线程去执行,而当前线程继续去做一些更加急迫的事情。这里的“把一部分工作交给另外一个线程取执行”,是通过将要执行的函数的函数入口地址告诉另外一个线程来实现的,当新的线程有了函数的入口地址,就可以调用该函数。 我们先来看一下怎样使用C#中...
阅读全文
摘要:http://www.cnblogs.com/Ring1981/archive/2006/07/23/455043.aspx Remoting系列(二)----建立第一个入门程序 下面的Remoting程序,采用了Singleton模式的服务器端激活的方式,分为三部分。 General:一个远程对象公用的程序集。 Server:服务器端 Client:客户端 一 创建第一个Remoting...
阅读全文
摘要:http://www.cnblogs.com/Ring1981/archive/2006/07/20/451624.html Remoting系列(一)----Remoting的基本概念 Remoting技术简介 一 Remoting技术出现的背景 1)分布式应用需求的迅速增长(Peer-to-Peer, Grid等技术的出现) 2)原有的C/S, B/S模式和技术已经不能胜任(串口RS232,...
阅读全文
摘要:许多应用程序使用多个线程,但这些线程经常在休眠状态中耗费大量的时间来等待事件发生。其他线程可能进入休眠状态,并且仅定期被唤醒以轮询更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每一个进程提供了一个线程池,使应用程序能够根据需要来有效地利用多个线程。一个线程监视排到线程池的若干个等待操作的状态。当一个等待操作完成时,线程池中的一个辅助线程就会执行对应的回调函数。线...
阅读全文
摘要:C#多线程学习(一) 多线程的相关概念 C#多线程学习(二) 如何操纵一个线程 C#多线程学习(三) 生产者和消费者 C#多线程学习(四) 多线程的自动管理(线程池) C#多线程学习(五) 多线程的自动管理(定时器) C#多线程学习(六) 互斥对象
阅读全文
摘要:今天一来是有点空,二来是在博客上偶然看到有关于委托的文章,一时兴起,就自己也写一点心得与大家分享一下。 先看一个例子: using System; namespace ConsoleApplication1 { class Class1 { [STAThread] static void Main(string[] args) { ...
阅读全文
摘要:事件,其实就是将物体的某个过程处理通过委托(delegate, 也就是函数指针) 的方式公开给外部的自定义函数处理。 C# 可以使用多播委托,但实际上一般情况下只需要用到单播。 事件需要通过调用到那个委托的代码触发才可以被调用。 以下用例子来说明。首先我们定义一个委托: namespace EventDemo { public delegate void ProcessHandler(obje...
阅读全文
摘要:关键字: Delegate, MulticastDelegate, EventHandler, EventHandlerList, EventHandlerList.ListEntry, Control, Component 首先从controlInstance.Click事件开始. 用Reflector反编译System.Windows.Forms.Control类可以看到对Click事件的定...
阅读全文

浙公网安备 33010602011771号