上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 定义插件接口// PluginInterface.cs// 插件的公用接口// 编译命令:csc /target:library PluginInterface.csusing System;public interface IPlugin{ // 插件名称 string Name { get; } // 实现插件功能的方法 object DoWork(object parameter);} 定义插件宿主接口// HostInterface.cs// 插件宿主的公用接口// 编译命令:csc /target:library HostInter... 阅读全文
posted @ 2011-09-13 14:14 Tammie-锴 阅读(1447) 评论(0) 推荐(1) 编辑
摘要: 之前对反射的 学习和使用过程中 ,发现 有时会使用 CreateInstance创建实例 然后调用方法 、参数等而有时 是通过type的一些方法 访问类中的方法和参数。。。这两者有什么区别呢?这是type的方式:Assembly ass = Assembly.Load(程序集);Type itype = ass.GetType(类名);MethodInfo method1 = itype.GetMethod(方法名);string s1 = (string)method1.Invoke(null, param1); CreateInstance创建实例的简单:MethodInfo metho. 阅读全文
posted @ 2011-09-13 11:37 Tammie-锴 阅读(5000) 评论(0) 推荐(0) 编辑
摘要: 动态创建对象实例【经典】是实现抽象工厂的基础,也是实现抽象工厂的核心技术,通过它,可以动态创建一个你想要的对象.如下面的例子是演示如何动态创建ChineseName或EnglishName的实例 1using System; 2using System.Reflection; 3namespace TestReflection 4{ 5 class AXzhz_sReflectionExample 6 { 7 public static void Main() 8 { 9 IName name=AbstractFactory.Get... 阅读全文
posted @ 2011-09-09 16:10 Tammie-锴 阅读(2479) 评论(0) 推荐(0) 编辑
摘要: 之前的文章中,已经详细说明了 反射的用法。这里就不再多说了。这里就直接上代码 //点击导航栏项时触发 //所有的导航栏项的点击事件都在此函数中处理 private void navBarItem_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { EntityMode entityMode = e.Link.Group.Tag as EntityMode; //模块实体 EntityMenu entity... 阅读全文
posted @ 2011-09-09 15:44 Tammie-锴 阅读(3450) 评论(0) 推荐(1) 编辑
摘要: 首先说说,为什么要学习 反射 呢?有什么用啊。在我们写程序的时候,经常会用到一些类中的方法,那么就要调用这些个类。如果不是在一个命名空间里时,就要引用相应的dll文件,然后再读取类中的方法。可是这样一来就很麻烦,因为记不住所有的类的地址啊,使用很不方便。这时候就体现出反射了,我们不知道类在哪里,但是依然可以使用,只要知道名字,通过反射就可以得到地址信息,进行调用。反射可以动态的创建类型实例,再绑定到现有对象上。从特定的程序集里载入特定的类型,以创建特定的实例。反射的特性就是动态的建立实例,但是它的弊端就是要牺牲一些性能,并且有些属性信息是不能通过反射来得到的。反射是.Net中获取运行时类型信息 阅读全文
posted @ 2011-09-09 14:13 Tammie-锴 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 当你运行这个程序时,当耗时操作结束后,啪嚓一下,程序出异常了:Control.Invoke&Control.BeginInvokeControl.Invoke和Control.BeginInvoke就是“发短信”的方法,如果使用Control.Invoke发短信,那么甲线程就会像个痴情的汉子,一直等待着乙线程的回音,而如果使用Control.BeginInvoke发送短信,那发完短信后,甲线程就会忙活自己的,等乙线程处理完再来瞧瞧。注意:有人看到了BeginInvoke方法来了个Begin,心里可能在想,这是异步的特征啊,那是不是像上篇文章中使用delegate的BeginInvoke 阅读全文
posted @ 2011-09-07 10:14 Tammie-锴 阅读(1215) 评论(0) 推荐(0) 编辑
摘要: 之前,我已经说过了BeginInvoke与Invoke的异同这里就要再来说说endinvoke的意思了我们知道 beginvoke就是通过线程的调用来异步的完成一些工作。一般只需要启动它就好,让它一直操作着。例如 用begininvoke修改界面显示,那么就是每次有所变化时它自动的改变界面的显示,因为它在后台执行着。但是有时候我们需要知道它的结束信息,并且在结束时还有所安排。这时候就需要endinvoke了先来看看,begininvoke的返回值类型:1: public interface IAsyncResult 2: { 3: object AsyncState { get... 阅读全文
posted @ 2011-09-07 10:07 Tammie-锴 阅读(3075) 评论(0) 推荐(0) 编辑
摘要: 今天看了篇技术帖,原来是可以不通过工具栏的现有工具进行布局的。以前 当我要有2个窗体的时候,就会拖拽2个 然后进行编辑。现在才明白,只要写成类也是可以使用的。打开一个窗体的文件,发现当自动新建个窗体时,其实是系统帮忙做了很多的准备工作。例如Designer.cs中就有InitializeComponent()和Dispose(bool disposing)这两个关键的函数尤其是在InitializeComponent()中定义了窗体中的所有的基础信息,包括控件初始化、事件的响应等等。自己在先一个类时,就只好自定义这些东西了 class Class1:Form { pu... 阅读全文
posted @ 2011-09-06 14:53 Tammie-锴 阅读(823) 评论(0) 推荐(0) 编辑
摘要: 今天在做一个后台服务的自动安装和卸载的小程序时,接触到了这个类要使用这个System.ServiceProcess.ServiceController类,这就要是用到System.Service Process.dll先来了解下这个类,主要是用来检测系统后台服务的1.服务的监视使用ServiceController类,可以获取每一个服务的信息。ServiceController类的下列属性可以用于获取服务的信息,如表32-4所示。表 32-4属性描述CanPauseAndContinue如果暂停和继续服务的请求可以发送给服务,则这个属性返回trueCanShutdown如果服务有系统关闭的处理 阅读全文
posted @ 2011-09-06 09:19 Tammie-锴 阅读(3195) 评论(0) 推荐(0) 编辑
摘要: MS的CMD命令行是一种重要的操作界面,一些在C#中不那么方便完成的功能,在CMD中几个简单的命令或许就可以轻松搞定,如果能在C#中能完成CMD窗口的功能,那一定可以使我们的程序简便不少。下面介绍一种常用的在C#程序中调用CMD.exe程序,并且不显示命令行窗口界面,来完成CMD中各种功能的简单方法。如下所示:System.Diagnosties.Process p=newSystem.Diagnosties.Process();p.StartInfo.FileName="cmd.exe";//要执行的程序名称p.StartInfo.UseShellExecute=fals 阅读全文
posted @ 2011-09-06 08:55 Tammie-锴 阅读(5559) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页