+展开-C#///对象比较///等价与恒等,下面我使用了一些例子来说明,如果要复习的话,仔细看一下///例子的每个注释就可以了///这里要注明一点Equals方法对于引用类型是比较两个变量是否引用了同一个///对象,它是不管对象的值是否一致的,///但是,Equals方法对于值类型是比较两个值对象内的值是否相等。usingSystem;usingSystem.Diagnostics;//定义..
在一个窗体上局部显示另外一个窗体如下图,图1 而不是另外打开一个窗体如下图2图2代码如下:+展开-C#Form2form2=newForm2();form2.TopLevel=false;form2.FormBorderStyle=System.Windows.Forms.FormBorderStyle.None;form2.Dock=DockStyle.Fill;form2.Parent=this.panel1;form2.Show(); 如果需要在panel1里面显示不同的窗体,那么要在..
+展开-C#//第一步,新建一个可序列化的类,用于这个对象的克隆操作[System.Serializable]classTestA{publicint[]aaa={0,0,0};publicobjectGetClone(objectobj){using(System.IO.MemoryStreamsm=newSystem.IO.MemoryStream()){System.Runtime.Serialization.Formatters.Binary.BinaryFormatterbinaryformatter=newSystem.Runtime.Serialization.F..
C#自定义属性实例代码+展开-C#usingSystem;usingSystem.Threading;usingSystem.Reflection;[AttributeUsage(AttributeTargets.Method,AllowMultiple=false)]classTestAttribute:System.Attribute{publicTestAttribute(){Console.WriteLine("TestAttribute.ctor()Defaultctor.");}publicTestAttribute(intnTime){Console.WriteLine("TestAttribut..
+展开-C#///为了使用一个在编译期间未知的类,除了我们介绍过的通过使用后期绑定的方法外,///还有另一个完全不同的方法。该方法具有较大优势,因为与使用早期或动态绑定相比///它在性能上几乎没有损失。不过,为了使用该“秘决”,你必须知道自己遵循某种///规范(实际上就是Pluge设计模式)。///我们的想法是确保在编译时未知的类型实现了一个接..
///一定绑定多次调用/// 有几点要注意,从下面的程序代码中可以看到/// 首先先使用AppDomain方法中得到未知类型的对象/// 然后从对象的obj.GetType()方法中得到对象的类型/// type.MethordInfo("方法名")方法得到类型的方法/// 然后使用 方法的对象.Invoke(使用方法的对象,方法的参数)来调用方法///using System;using System.Reflection;class ..
+展开-C#///前面的几篇文章写的是怎样实例化一个未知的类///那么这篇文章写的就是前几篇文章下面要做的事///得到实例化对象后,怎样使用类中的方法:///也就是后期绑定///usingSystem;usingSystem.Reflection;classprogram{staticvoidMain(){//通过AppDomain.CurrentDomain.CreateInstanceAndUnwrap()方法实例化一个未知类objectobj=AppDomain.C..
第一步,新建一个类库,写入代码如下:+展开-C#usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacewangjun{publicclasswangjun{publicintSum(inti,intj){returni+j;}}}第二步,将类库的DLL文件复制到新建的程序集目录下,然后在程序集中加入如下代码:+展开-C#///使用System.Type类///通过System.Type类的非静态方法Invok..
.ashx 文件用于写web handler的。其实就是带HTML和C#的混合文件。当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable. 如下例所示+展开-C#//usingSystem;usingSystem.Web;publicclassAverageHandler:IHttpHandler{publicboolIsReusable{get{returntrue;}}publicvoidProcessRequest..
一直以来附件上传都是个很郁闷的问题,刚开始是利用js添加input file 然后一起提交来实现多文件上传,在使用163邮箱的时候很是羡慕它的附件上传部分(选择完文件就提交,可以多个文件一起上传,而且还可以获取上传进度),这时就很想自己也写个那样的东西出来。最近参照网上的一些资料,初步到达了预期目标(客户端获取上传进度,还没发现什么好..
第一步,新建一个类库,写入代码如下:+展开-C#usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacewangjun{publicclasswangjun{publicintSum(inti,intj){returni+j;}}}第二步,将类库的DLL文件复制到新建的程序集目录下,然后在程序集中加入如下代码:+展开-C#///使用System.Reflection.ConstructorInfo类///System.Refle..
第一步,新建一个类库,写入代码如下:+展开-C#usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacewangjun{publicclasswangjun{publicintSum(inti,intj){returni+j;}}}第二步,将类库的DLL文件复制到新建的程序集目录下,然后在程序集中加入如下代码:+展开-C#///System.AppDomain类拥有///CreateInstance()///CreateInst..
下载下面的压缩文件,将ManagedZLib.dll,FlashInfo.dll放在项目的BIN文件中,并引用,或者将flashinfo.cs放在app_code文件下点击下载此附件flashinfo.cs内容如下:+展开-C#usingSystem;usingSystem.Collections;usingSystem.IO;usingSystem.Text;namespaceFW0579.CService{publicclassFlashInfo{privateintwidth,height,version,frameCount,..
下面的例子教你如何通过反射-实例化一个未知的类(使用System.Activator类) 分两步来做:第一步,新建一个类库,写入代码如下:+展开-C#usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacewangjun{publicclasswangjun{publicintSum(inti,intj){returni+j;}}}第二步,将类库的DLL文件复制到新建的程序集目录下,然后..
+展开-C#///通过反射从元数据中获取信息usingSystem;usingSystem.Reflection;classwangjun{staticvoidMain(){//设置字符串为空stringname2=string.Empty;//得到现在正在使用的应用域的名字stringname=AppDomain.CurrentDomain.FriendlyName;//打印现在应用域的名字Console.WriteLine(name);//新建应用域的对象,此对象变量指向当前应用域对象AppD..
+展开-C#///对载入AppDomain的程序集的反射///usingSystem;usingSystem.Reflection;classwangjun{publicstaticvoidMain(){//得到当前正在执行程序集的对象Assemblyassembly=Assembly.GetExecutingAssembly();//从程序集中得到类型,并遍历类型foreach(Typetypeinassembly.GetTypes()){//输出类型名Console.WriteLine("classis{0}",type);//从类型..
在一些银行、大型商场、办公楼、升降电梯中,为了保障公有财产、商品、办公设备、资料、人身等的安全,都设有监控系统。在出现问题时,用户可以通过监控系统查找原因。下面的几个实例分别实现了摄像头监控与定时监控的功能。实例425 简易视频程序实例说明 利用普通的简易摄像头,通过C#语言即可开发成简易视频程序。本实例利用市场上购买..
在程序中出现了大量警告,警告处使用[Obsolete]特性,并且输出 [Obsolete]特性的string类型参数。虽然编译出现警告,但编译成功了,执行ObsoletetTest程序,运行结果如图7.19所示。图7.19 ObsoletetTest正常运行 本程序中_Name属性同时使用了多个特性,这时可用逗号分隔,将多个特性共存于同一对方括号中。解析 [Obsolete]特性在团队合..
在英文资料中,类的属性被称为"Property",而特性被称为"Attribute",字面上容易混淆,不过它们有着很大的差异。属性是类定义中用于封装成员访问的手段,使对象的数据成员访问既简单又安全。类成员的特性被称为元数据中的注释,可以允许开发者添加更多自己的信息和注解,并通过反射技术在程序运行时获取。面试例题11:如何通过特性使程序代码..
在目录下新建一个程序文件,并命名为LateBinding.cs,编写代码如代码7.12所示。代码7.12 晚期绑定:LateBinding.cs+展开 -C#usingSystem;//导入相应的命名空间usingSystem.Reflection;usingSystem.IO;classLateBinding{staticvoidMain(string[]args){Console.Write("\n【1】请输入传递给OldClass类Method静态方法的参数:");stringinputA=Co..
面试例题8:如何动态加载外部程序集并用反射获取指定类型的信息?考点:学习动态加载外部程序集的基本方法,理解Assembly类的Load()方法和LoadFrom()方法的区别。出现频率:★★★解答 通过System.Reflection命名空间下的Assembly类可以动态加载外部程序集,可选方法为Load()方法和 LoadFrom()方法。Load()方法用于加载当前程序集位于相同目录..
在命令行下编译ClassRef.cs,执行ClassRef程序,程序提示"请输入所检测的类型名称:",输入"ClassA",运行结果如图7.9所示。 主程序首先进入一个不限次数的while循环,循环中首先判断输入值是否为"quit"。如果输入为"quit"则跳出循环,否则将输入值当做类型名称字符串传递给Type类的GetType()方法,获取Type对象的引用tp,并再次传递给Cl..
解析 反射技术在运行时可以获取程序集中每个类型的成员,包括字段、方法、属性、事件等,并进一步获取这些成员的详细信息。反射技术还可以动态载入外部程序集(私有程序集或共享程序集),获取程序集中类型的相关数据。有意思的是从外部动态载入的程序集还可通过晚期绑定,创建外部程序集中某类型的实例(对象),并且可以进一步调用其成员(..
反射技术在多数.NET程序中不会被使用,但是它的确是非常重要的技术,在很多应用程序中有着不可替代的作用。.Net的应用程序体系分为以下4个层次:程序集(Assembly)、模块(Module)、类型(Class)和类型成员(Member),反射技术可以在程序运行时获取这4个层次的元数据信息。只要掌握了反射技术实现的基本原理,就可以轻松解决各种形式的反..
前几天做页面,排好的html页面复制到aspx页面上就是会出现差异,比如字体定义无效,基本的表现就是怎么改样式都没显示或只有某些浏览器正常,搞了半天才发现是编码问题,DW默认新建的文件编码是gb2312的,vs默认是utf-8的,时间原因也没重新排,就在web.config的Configuration节点下对这个页面单独设置了编码。1 ?xml version="1.0"?2 configu..
在网上查找了很久都不懂Webbrowser的StatusTextChanged事件在什么地方,后来终于找到了,在这里进行笔记,以免以后忘记的时候有文可以参考: 在winform编程中,一个form上加一个Webbrowser控件,再加一个statusStrip控件到Webbrowser里面,然后在statusStrip的控件上增加一个toolStripStatusLabel1控件,最后只要用代码来实现了。 代..
简要介绍,本文主要内容是实现通过ASP.NET自己的Sql Server的Session存储机制实现,通过存储过程实现忽略程序标识的区别,达到多程序池间Session数据共享的目的。详细原文: 本文转载人数己经太多,所以不知道原文地址何处,敬请谅解!大致思路: 采用SqlServer方式存储Session,分析数据库表结构、原理、流程,大致可以得到SqlServer存..
今天遇到了这个问题,于是研究了一下。要解决这个问题,首先就要明白一些Session的机理。Session在服务器是以散列表形式存在的,我们都知道Session是会话级的,每个用户访问都会生成一个Session。那么服务器是怎么区分不同用户的Session?又是怎么将不同用户的 Session与不同的用户绑定的呢?下面我们来研究一下,以下纯属我个人的理解,如有..
1、客户端SessionID值唯一; 对于不同的域名:主域名、子域名、跨站点域名或跨服务器域名,用户在打开页面时会产生不同的SessionID, 为了使这些站点在用户登录时只登录一次,那我们就要解决SessionID的问题,必须使SessionID在这些共享Session的站点中只产生一次。而SessionID是存储在客户端的cookie之中键值为ASP.NET_SessionId的一个字..
最近在做一个多模块的大型项目,其中有些模块由其他公司承包,环境是.NET2.0。我的设计方案是每个模块是一个单独的应用程序,那么问题是如何将这些模块集中身份验证与授权过程呢?是个问题。。 我尝试将每个独立的Web应用程序放到统一的解决方案中,然后尝试编译,失败.. 接着我想到了.NET环境下Session管理的3种方式——进内内、进程..