c#用反射获取类型,然后动态的生成变量(动态变量)
[ 2006-04-14 02:34:12 | 作者: admin ]
c#用反射获取类型,然后动态的生成变量
现在我们要获取 ProjectDataDetail myDataDetail 下面的一个属性 D01_01
即:projectDataDetail.D01_01的值,我们需要在循环中动态建造D01_01属性
1、获取单个动态对象的属性值
2、设置单个动态对象的属性值[code][/code]...
阅读全文…
现在我们要获取 ProjectDataDetail myDataDetail 下面的一个属性 D01_01
即:projectDataDetail.D01_01的值,我们需要在循环中动态建造D01_01属性
1、获取单个动态对象的属性值
Type myType = myDataDetail.GetType();
System.Reflection.PropertyInfo myPI = myType.GetProperty("D01_01") ; //这里注意属性的大小写,不要写成d01_01
string myValue = myPI.GetValue(myDataDetail,null).ToString() ; //获取 projectDataDetail.D01_01 值
System.Reflection.PropertyInfo myPI = myType.GetProperty("D01_01") ; //这里注意属性的大小写,不要写成d01_01
string myValue = myPI.GetValue(myDataDetail,null).ToString() ; //获取 projectDataDetail.D01_01 值
2、设置单个动态对象的属性值[code][/code]...
阅读全文…
vs.net的引用问题
[ 2006-04-12 01:50:00 | 作者: admin ]
一个项目若有多个外部模块,那么需要现设置好整个项目的依赖,然后再设置好模块的引用问题。
项目 - 属性 - 引用路径中查看引用是否正确。
项目 - 属性 - 引用路径中查看引用是否正确。
Asp.Net 动态生成验证码
[ 2006-04-09 01:49:29 | 作者: admin ]
我们在设计用户登录模块时,经常会用到验证码,可以有效地防止黑客软件的恶意破解,现公开我常用的验证码的源代码,生成效果如图: 。
使用方法:
1、在Web项目中添加一个类,如“CreateImage.cs”,然后将我公布的源代码Copy进去;
2、再新建一个Web窗体,如“Image.aspx”,在Page_Load中加入代码 “CreateImage.DrawImage ();”当然别忘了加上对类的引用哦!!
3、在页面的合适位置上(你想放验证码的位置)上加上如下javascript代码就OK 了,
<SCRIPT LANGUAGE="JavaScript">
<!--
var numkey = Math.random();
...
阅读全文…
使用方法:
1、在Web项目中添加一个类,如“CreateImage.cs”,然后将我公布的源代码Copy进去;
2、再新建一个Web窗体,如“Image.aspx”,在Page_Load中加入代码 “CreateImage.DrawImage ();”当然别忘了加上对类的引用哦!!
3、在页面的合适位置上(你想放验证码的位置)上加上如下javascript代码就OK 了,
<SCRIPT LANGUAGE="JavaScript">
<!--
var numkey = Math.random();
...
阅读全文…
Asp.Net常用函数库
[ 2006-04-09 01:47:57 | 作者: admin ]
发部一个自已常用的 Asp.Net常用函数库,包括如下常用函数:
把普通字符转换成网页标签
网页标签转换成空白
WinForm 和 WebForm 字符格式转换
计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
截取用户输入长度的文本,并再文本后加‘...’ [中文算两个长度,英文算一个长度]
用于防止SQL注入式攻击检测
去掉文本里的网页标签代码
转换SQL语句插入操作或还原取出文本时可能出现的关键标点符号"'"
新建一个空文件夹
新建一个空文件
删除一个文件夹
删除一个文件
移动一个文件夹
向文件写入文本
获取文件类型
获取文件大小
获取文件最后一次修改时间
跟据当前时间加上四位随机数生成一个文件名
点击下载此文件
把普通字符转换成网页标签
网页标签转换成空白
WinForm 和 WebForm 字符格式转换
计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
截取用户输入长度的文本,并再文本后加‘...’ [中文算两个长度,英文算一个长度]
用于防止SQL注入式攻击检测
去掉文本里的网页标签代码
转换SQL语句插入操作或还原取出文本时可能出现的关键标点符号"'"
新建一个空文件夹
新建一个空文件
删除一个文件夹
删除一个文件
移动一个文件夹
向文件写入文本
获取文件类型
获取文件大小
获取文件最后一次修改时间
跟据当前时间加上四位随机数生成一个文件名
点击下载此文件
C#运用正则表达式智能获取html模版页中模版信息的应用
[ 2006-04-09 01:46:26 | 作者: admin ]
我们在做WebForm开发的时候经常会用到模版,可以方便地生成静态html页面,提高网站的访问速度,普通的模版应用有一定的局限性,一旦数量一多,势必会降低计算机的执行效率和代码的冗余度;但如果使用正则表达式,实限起来就非常容易,C#对正则表达式的支持非常好,不管html代码里有多少个模版标签,我们都可以一次把它全部取出来;当然,模版的写法也要有一定的规则(这很容易做到)!
例如:我们在代码里面都按 $i_*(n1,n2,n3,n4,n5)$ 这样的标签定义(*为任意字符串),里面的[n1,n2,n3,n4,n5]为任意数字或字符,可以是文章的ID、截取字符串的长度、记录数等信息。
然后我们在程序里面可以用如下正则表达式获取模版标签:
//正则表达式
string pat=@"\$i_.+?\([0-9]+,[0-9]+,[0-9]+,[0-9]+,[0-9]+\)?\$";
...
阅读全文…
例如:我们在代码里面都按 $i_*(n1,n2,n3,n4,n5)$ 这样的标签定义(*为任意字符串),里面的[n1,n2,n3,n4,n5]为任意数字或字符,可以是文章的ID、截取字符串的长度、记录数等信息。
然后我们在程序里面可以用如下正则表达式获取模版标签:
//正则表达式
string pat=@"\$i_.+?\([0-9]+,[0-9]+,[0-9]+,[0-9]+,[0-9]+\)?\$";
...
阅读全文…
《Effective C# 精髓》摘选
[ 2006-04-09 01:45:20 | 作者: admin ]
Item 1: Always Use Properties Instead of Accessible Data Members
这个是地球人都知道的条款了。你需要记住,属性是类的外部接口部分,而(公共)成员却是内部实现。如果把内部实现暴露给外部,对于以后类的实现变更是非常不利的。
Item 2: Prefer readonly to const
这个条款需要注意一下几点:
(1)const在编译期发生作用,即编译器会将所有的const成员置换成对应的常量“值”。
(2)即使引用其他程序集中的const成员,本程序集中也是硬编码了const成员的值。
(3)readonly在运行期被评估,所以其性能比const稍差,但是灵活性更高。
(4)const的值必须在编译期决定,所以不能使用new为其赋值。
...
阅读全文…
这个是地球人都知道的条款了。你需要记住,属性是类的外部接口部分,而(公共)成员却是内部实现。如果把内部实现暴露给外部,对于以后类的实现变更是非常不利的。
Item 2: Prefer readonly to const
这个条款需要注意一下几点:
(1)const在编译期发生作用,即编译器会将所有的const成员置换成对应的常量“值”。
(2)即使引用其他程序集中的const成员,本程序集中也是硬编码了const成员的值。
(3)readonly在运行期被评估,所以其性能比const稍差,但是灵活性更高。
(4)const的值必须在编译期决定,所以不能使用new为其赋值。
...
阅读全文…
怎样在.Net下读取用户配置数据
[ 2006-04-09 01:43:43 | 作者: admin ]
在.Net环境中,ConfigurationSettings对象给了我们一个appSettings属性,这个属性是一个NameValueCollection,因此,我们可以用appSettings[key]的方式来存取appSettings节次的配置信息,如下所示:
<appSettings>
<add key="TemplateDir" value="~/Templates" />
</appSettings>
我们直接可以用System.Configuration.ConfigurationSettings.AppSettings["TemplateDir"];
实质上,就算不是appSettings节次的配置内容,你自己定义的任意配置节次也可以这样做,如下所示:
<configSections>
...
阅读全文…
<appSettings>
<add key="TemplateDir" value="~/Templates" />
</appSettings>
我们直接可以用System.Configuration.ConfigurationSettings.AppSettings["TemplateDir"];
实质上,就算不是appSettings节次的配置内容,你自己定义的任意配置节次也可以这样做,如下所示:
<configSections>
...
阅读全文…
在.Net下发送邮件(C#)
[ 2006-04-09 01:41:46 | 作者: admin ]
在这里使用的是.net自带的邮件发送类(System.Web.Mail),它可以满足用户的一般要求,并支持服务器验证,使用起来也很方便!
在使用之前先导入命名空间:"using System.Web.Mail;",具体代码如下:
MailMessage msg = new MailMessage();
//发送方地址(如test@163.com)
msg.From = "";
//接收方地址(如test@163.com)
msg.To = "";
//正文内容类型
msg.BodyFormat = MailFormat.Html;
//正文内容编码
msg.BodyEncoding = System.Text.Encoding.Default;
//主题
msg.Subject = Subject;
//内容
msg.Body = Body;...
阅读全文…
在使用之前先导入命名空间:"using System.Web.Mail;",具体代码如下:
MailMessage msg = new MailMessage();
//发送方地址(如test@163.com)
msg.From = "";
//接收方地址(如test@163.com)
msg.To = "";
//正文内容类型
msg.BodyFormat = MailFormat.Html;
//正文内容编码
msg.BodyEncoding = System.Text.Encoding.Default;
//主题
msg.Subject = Subject;
//内容
msg.Body = Body;
阅读全文…