
DotNet
文章平均质量分 75
wantsfly
这个作者很懒,什么都没留下…
展开
-
C#中的反射
反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等,。System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码 和反射相关的命名空间(我们就是通过这几个命名空间访问反射信息): System.Reflecti原创 2005-08-29 10:59:00 · 574 阅读 · 0 评论 -
给C# 2005提供VB2005特有的My命名空间!
VB2005提供了其特有的My命名空间,实际上是给BCL(Basic Class Library,基本类库)提供了一个额外的类,相信大家都已经了解。 这个My命名空间大大简化了常规访问,如:计算机信息、文件系统、注册表、多媒体、计算机时钟、打开端口、访问网络等等。 使用C#的开发人员心痒了吧?那让我们在C#中也实现My命名空间吧! 在VB2005把My的实现放在Microsoft.VisualBa原创 2005-09-20 11:41:00 · 1469 阅读 · 0 评论 -
.NETRemoting中的几个重要概念和实现方法
.NETRemoting中有很多非常眩目的新名词,听起来就有些令人望而却步,但当明白了它们的真正含义时就会发现其实他们是那么的简单。我最近一直在学习.NETRemoting,就感觉到了这一点。由于没有太多好的中文书籍(其实英文的也不多),学起来颇费了一番周折,起初被这些名词搞得云雾缭绕,然后通过在网上搜集大量的资料,才逐渐弄清了这些概念的真正意思,现将一些.NETRemoting中常用的概念以我自原创 2005-09-13 13:40:00 · 2783 阅读 · 0 评论 -
Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
前言:在Remoting中处理事件其实并不复杂,但其中有些技巧需要你去挖掘出来。正是这些技巧,仿佛森严的壁垒,让许多人望而生畏,或者是不知所谓,最后放弃了事件在Remoting的使用。关于这个主题,在网上也有很多讨论,相关的技术文章也不少,遗憾的是,很多文章概述的都不太全面。我在研究Remoting的时候,也对事件处理发生了兴趣。经过参考相关的书籍、文档,并经过反复的试验,深信自己能够把这个问题阐原创 2005-09-13 21:19:00 · 5721 阅读 · 4 评论 -
使用Visual C#制作可伸缩个性化窗体
谁都希望自己的应用程序能让人留下一个深刻的印象,让自己的程序窗体有一件与众不同的"外衣"是一个好办法。试想:在一大堆的普通窗口中突然跳出一个很酷的界面,一定能让人眼睛一亮进而产生兴趣的。在VB,VC中如何定制可伸缩个性化窗口早就不是什么秘密了,已经有了大量相关的文章进行介绍,无非都是如何调用系统API之类的方法,但是在.Net中调用API却相对比较麻烦,所以使用.Net制作个性化窗体的文章也有一些原创 2005-09-22 13:57:00 · 1070 阅读 · 0 评论 -
Indigo - DataContract
这篇文章中,代码和相关的描述仍然以VS2005 Feb CTP+Indigo Mar CTP为基础。Data Contract是用来定义Indigo Service与Client端之间用来交换的数据的格式,如果我们需要传递自定义的数据,那么就需要将其定义为符合Indigo规范的Data Contract。数据里面的每一个数据项,被成为Data Member。[DataContract]public原创 2005-09-22 10:01:00 · 1090 阅读 · 0 评论 -
(1)
下雨了,别忘了打伞,湿身是小事,淋病就麻烦大了丑,但是丑的特别,也就是特别的丑。天使之所以会飞,是因为她们把自己看得很轻~~~给我一个女人,我可以创造一个民族;给我一瓶酒,我可以带领他们征服全世界!人生没有彩排,每天都是现场直播!春天,我把老公埋在地底下,秋天,我就有好多老公......起来,不愿坐着的人们如果只有300W,大家说是买奔驰好还是法拉利好呀.回:最好买300辆二手奥托,再雇300个司原创 2005-09-21 13:31:00 · 796 阅读 · 0 评论 -
如何用实现.NET的插件机制
.NET 提供的反射(Reflection)机制可以很方便的加载插件。本文提供一种方法,可以灵活的正确的载入所需的插件。在.NET中,一个完整的类型名称的格式如 "类型名, 程序集名"。例如:"System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyTok原创 2005-09-20 11:53:00 · 1062 阅读 · 0 评论 -
第一个Indigo Service
我第一次尝试Indigo,是使用的VS 2005 PD6 + Indigo SDR(2.0.40903)这个版本,那个SDR的版本和现在公开发布的CTP版本已经有不少的差别了。现在我已经把我的Indigo运行环境更新到了VS2005 PD7(8.0.50110.30,也就是公开的Feb CTP版本) + Indigo CTP(2.0.50110.20),这两个版本能够非常好的一起工作。但是注意,现原创 2005-09-22 10:19:00 · 1051 阅读 · 0 评论 -
轻而易举拥有xp风格的界面
Windows XP发布时,我们中许多人都为她华丽漂亮的界面折服和兴奋。然而,.NET1.0发布时,我们中又有许多人,包括我自己,对它不支持XP风格感到大失所望。可事实是,在Windows XP(只限于WindowsXP)里.NET支持XP风格,只是还要您做一点小工作。 这篇文章主要参考了http://www.codeproject.com/csharp/dotnetvisualst原创 2005-10-21 21:28:00 · 1340 阅读 · 3 评论 -
无边框窗体最大化,但是不档住任务栏
个窗体,一个模块:窗体上两个按钮,窗体的BorderStyle属性为0,窗体代码如下:Option ExplicitPrivate Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypePrivate Declare Function GetWindowR原创 2006-01-13 13:11:00 · 1858 阅读 · 0 评论 -
NHibernate学习手记(1) - 对象的简单CRUD操作
你是否正在为编写和维护冗长和复杂的SQL语句而苦恼?你是否厌倦了继续以面向过程的开发方式,而想开始尝试以面向对象的方式去思考?你是否想跳出重复编写SQL语句的囹囵,而想更加专注于实现用户需求的逻辑实现?...和许多开发人员一样,我非常反感(甚至是恐惧)sql语句,这种当初设计用来和数据库进行会话的语言,想不到现在被发扬光大到可以用来编写业务逻辑(通过任意复杂的组合)。但我们完全原创 2007-03-19 12:08:00 · 1016 阅读 · 0 评论 -
NHibernate学习手记(6) - 实现one2many/many2one的映射
一对多(one2many)是最常见的对象关系之一,本文将通过示例说明如何使用NH来实现one2many关系的映射,以及如何实现Parent/Child对象之间的级连操作。根据约定,本文将通过Category和Item对象来描述one2many的关系,即一个Category对象对应多个Item对象。主要内容:1、编写POCO类2、准备数据库3、编写配置文件4、级连(cascading)操作示例一、编原创 2007-03-19 12:14:00 · 1028 阅读 · 0 评论 -
NHibernate学习手记(4) - 持久化类(Persistent class)的设计
NH中把需要持久化服务(保存到数据库)的类称为Persistent class,目的和常见的Serializable(可序列化)一样,都是把程序运行时创建的临时对象(transient objects)保存到数据库、文件等介质中。NH的Online Document推荐的持久化类设计模式称为POCO(Plain Old CLR Object Model)和我们的BusinessEnitit原创 2007-03-19 12:11:00 · 950 阅读 · 0 评论 -
NHibernate学习手记(3) - NH的配置信息
作为一种通用的持久层框架,NH可以通过配置来指定所使用的数据库类型,并且可根据不同的数据库调整NH的运行参数。这些配置信息通常保存在配置文件中,当数据库配置发生改变时,我们只需要修改配置文件即可,不需要修改代码和编译。主要内容:1、NH支持的配置参数2、设置NH配置参数的若干方法 一、NH支持的配置参数NH初始化NHibernate.Cfg.Configuration对原创 2007-03-19 12:11:00 · 2437 阅读 · 0 评论 -
NHibernate学习手记(2) - NH的系统架构
Hibernate的名气实在太大,甚至已经成为Java社区的持久层技术的事实标准!作为Hibernate的孪生兄弟,NH从一诞生便是头顶光环,难免会给我们这些NH beginner造成或多或少的心理压力,这也可能是为什么.net项目组迟迟不引入O/R mapping的的原因之一。本文中并不打算评价O/R Mapping到底有什么好处,因为这个话题实在已经过时了。从Java社区对Hibernat原创 2007-03-19 12:09:00 · 885 阅读 · 0 评论 -
关于C#中实现两个应用程序消息通讯的问题
注意这里发送消息的函数:public static void SendMessage(string destProcessName, int msgID, string strMsg)只能发送一个msgID和一个strMsg, 接收方只接收了strMsg,我的项目中已经够用了,你如果需要读msgID,还需要改一下。客户端代码请参考csdn上的原文自己写吧。/**//* 进程之间通讯的几种方法:转载 2006-04-24 08:01:00 · 5043 阅读 · 0 评论 -
模拟鼠标/键盘
鼠标操作类using System; namespace Edobnet.Net.Lib{ /// /// Mouse 的摘要说明。 /// public class Mouse { public Mouse() { //转载 2006-04-22 10:23:00 · 1045 阅读 · 0 评论 -
.Net 环境下实现可变大小的无标题窗口拖动
将窗体边框设置为None,重载下面的方法可以实现无标题可改变大小的窗口。 protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style |= 0xC0000 + 0x20000; return cp; } }原创 2006-01-13 13:45:00 · 1499 阅读 · 0 评论 -
如何使用.NET配置文件
.NET的应用程序配置文件,使用的是XML格式。相对INI文件来说,它的功能要强上不少,而且具有很强的可扩展性。它的缺点是不能直接进行写操作,也就是说,不能直接在程序中修改配置文件的数据(当然不是指不能,不过不是本文讨论的范围)。本文主要目的是探讨如何扩展配置文件,并在其加入各种自定义配置信息。 1. 使用 简单的配置信息,可以直接放入标记中。如:xml version原创 2005-09-20 11:54:00 · 1220 阅读 · 0 评论 -
Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务
前言:随着对Remoting的逐渐深入学习,觉得Remoting技术真是博大精深,很多内容对于我来说均是全新的知识。自知技术造诣浅陋,唯有以勤补拙。我很希望自己能写一些有用的文章,一方面记录自己的足迹,另一方面也能为别人提供某些帮助。然后,我在想,将文章命名为专题系列是否有些大了?也许吧,不过我总认为,目标不妨订高一些,压力不妨给自己多一些,也许努力下去,会有水到渠成的时候。一、远程对象的激活在R原创 2005-09-13 21:17:00 · 1138 阅读 · 0 评论 -
装载外部DLL
例DLL 文件内容如下:using System;using System.Windows.Forms;namespace wantsfly.com{ public class ShowAboutBox { public static void ShowOn(Form fm) { MessageBox.Show("OK"); } }}编译后文件名叫 AboutBox.dll主程序里调用方法原创 2005-08-26 16:27:00 · 748 阅读 · 0 评论 -
C# Plug-in resources
http://www.icsharpcode.net/OpenSource/SD/Default.aspxhttp://www.thecodeproject.com/csharp/PluginsInCSharp.asphttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/pluginframewor原创 2005-08-26 16:08:00 · 862 阅读 · 0 评论 -
Creating a Plug-In Framework
Roy OsheroveDecember 2003Summary: Shows how to add plug-in support to your .NET applications, and provides a framework you can use to add this functionality. (9 printed pages)Applies to Microsoft® A原创 2005-08-26 16:03:00 · 961 阅读 · 0 评论 -
C#2.0新特性探究之模拟泛型和内置算法
在C#2.0中,匿名方法、IEnumerable接口和匿名方法的合作,使很多的编程任务变得非常的简单,而且写出来的程序非常的优美。 比如,我们可以写出如下的代码:List<Book> thelib = Library.getbooks();List<Book> found = thelib.FindAll(delegate(Book curbook){ if (cu原创 2005-08-31 14:28:00 · 655 阅读 · 0 评论 -
C# 插件构架实战
一、引言 1. 问题的引入 假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件原创 2005-08-30 15:25:00 · 832 阅读 · 0 评论 -
使用SQLXML的Web Service支持
.NET中访问数据库一般采用ADO.NET,也可以使用微软的Data Access Applicaiton Block for.NET。如果是访问SQLServer数据库,还有一种选择就是采用微软的SQLXML。本文介绍使用SQLXML的Web Service支持的方法。系统需求 - 安装.NET Framework 1.1 - 安装Microsoft SoapSDK原创 2005-08-29 13:39:00 · 659 阅读 · 0 评论 -
复制文件夹所有内容 和 删除整个文件夹的2个函数
// ====================================================== // 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面 // 如果目标文件夹为只读属性就会报错。 // ====================================================== public static void Cop原创 2005-08-29 13:26:00 · 609 阅读 · 0 评论 -
调用方法的另一种方式
一般我们调用一个类的方法,都是通过这个类本身(static方法)或者它的一个实例去调用.比如:Interface IService{ void RunService(IContext context);}class ServiceA:IService{ public override void RunService()//继承自接口 { //实现 }原创 2005-08-29 11:46:00 · 648 阅读 · 0 评论 -
用反射调用别人的.NET程序里的类和方法
如果想复用别人写的.NET程序但手上只有一个编译过的EXE,那么方法之一是用Reflection(反射)。下面是一些例子,初次上手的人可以参考。先假设我们要复用的第三方应用程序EXE是由下面的代码编译成的:using System;namespace MyNamespace{ public class MyApp { public MyNestedObject myNeste原创 2005-08-26 16:42:00 · 844 阅读 · 0 评论 -
ADO.net 中数据库连接方式
在MSDN中,.net的数据库连接字符串都有详细的说明,我这里以代码范例的方式罗列一些,具体的每一项代表的意义可以参看MSDN.ADO.net 中数据库连接方式(微软提供)微软提供了以下四种数据库连接方式:System.Data.OleDb.OleDbConnectionSystem.Data.SqlClient.SqlConnectionSystem.Data.Odbc.OdbcConnecti原创 2005-08-29 13:27:00 · 611 阅读 · 0 评论 -
Microsoft .Net Remoting系列专题之一:.Net Remoting基础篇
前言:关于Remoting,我已经写了几篇文章了,就目前掌握的知识而言,差不多都是有关Remoting的基础知识。现在的我正准备向Remoting的高级用法进阶。那么就有必要将前期所做的学习和工作整理一下,何况以前写的文章因为自己一知半解的缘故,自有矛盾之处,所以也能借此机会对其进行修改。望各位同学多多指正。一、Remoting基础什么是Remoting,简而言之,我们可以将其看作是一种分布式处理原创 2005-09-13 20:58:00 · 990 阅读 · 0 评论 -
C#设计模式之简单工厂篇
【案例】公司准备开发一套产品订单系统,客户强烈要求该系统能适应不同的数据库,即能让客户十分方便的决定到底是用SqlServer数据库还是Oracle数据库,或者其它数据库,而且数据库切换应该简单,决不能让客户麻烦得手忙脚乱。 遇到这种情况,最愚蠢的办法就是开发不同数据库版本的系统,即一套SqlServer版的订单系统,一套Oracle版的订单系统,但要真是这样干的话,我相信项目经理一定会获得千古原创 2005-09-13 09:19:00 · 1071 阅读 · 1 评论 -
在.net中轻松掌握Windows窗体间的数据交互(二)
《在.net中轻松掌握Windows窗体间的数据交互(一)》一文中我们讲了使用带参数的构造函数来实现窗体间的数据传递,我认为是用的比较多的一种,接下来让我们看看另外两种实现方法。二.给窗体添加属性或方法 1.使用Form类的Owner属性 获取或设置拥有此窗体的窗体。若要使某窗体归另一个窗体所有,请为其 Owner 属性分配一个对将成为所有者的窗体的引用。当一个窗体归另一窗体所有时,它便随着所有者原创 2005-09-08 11:32:00 · 722 阅读 · 0 评论 -
在.net中轻松掌握Windows窗体间的数据交互(一)
Windows 窗体是用于 Microsoft Windows 应用程序开发的、基于 .NET Framework 的新平台。此框架提供一个有条理的、面向对象的、可扩展的类集,它使您得以开发丰富的 Windows 应用程序。一个Windows窗体就代表了.NET架构里的System.Windows.Forms.Form类的一个实例。 冯钰在优快云技术论坛.NET板块下的C#分类经常看到有人问起如原创 2005-09-08 11:25:00 · 983 阅读 · 1 评论 -
C#2.0 新特性探究之委托与匿名委托
delegate经常被人用来与回调相比较,其实两者在某种程度上由很多共同点。不过delegate有很多更加强大的地方。 首先,delegate中可以注册任意多个回调,在一个delegate被调用的时候,已经注册的过程将会被逐个调用。 其次,delegate允许注册一个对象的方法,而不像C++中指可以使用静态方法或者全局方法作为函数指针,提供了更多的灵活性,同时也暗示我们,delegate原创 2005-08-31 14:21:00 · 596 阅读 · 0 评论 -
深入理解C#编程中的组件-事件-委托
在组件编程中对事件的理解是十分重要的,C# 中的“事件”是当对象发生某些有趣的事情时,类向该类的客户提供通知的一种方法。与事件联系最为紧密的,个人认为是委托.委托可以将方法引用封装在委托对象内。为了弄清组件-事件-委托三者的关系,本人用实际的例子来谈 谈小弟的理解。 首先创建一个Windows控件项目,添加如下控件样板。 当事件触发时,会传递一个EventArgs类原创 2005-08-31 14:18:00 · 960 阅读 · 1 评论 -
c#.net常用函数和方法集
1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 in原创 2005-08-31 13:22:00 · 695 阅读 · 0 评论 -
XML的简单读取与写入
已知有一个XML文件(bookstore.xml)如下: Oberons Legacy Corets, Eva 5.95 1、往节点中插入一个节点: XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("bookstore.xml"); XmlNode root=xmlDoc.SelectSingleNode("bookstore");原创 2005-08-31 13:20:00 · 583 阅读 · 0 评论 -
有兴趣的执行一下这段代码
static public string GetConfigiuageConnString() { Guid dataLinksGuid = new Guid("2206cdb2-19c1-11d1-89e0-00c04fd7a829"); Type dataLinksType = Type.GetTypeFromCLSID(dataLinksGuid, true); object dataLin原创 2008-05-11 14:13:00 · 654 阅读 · 0 评论