浏览模式: 普通 | 列表
c#用反射获取类型,然后动态的生成变量
      现在我们要获取 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 值

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();
...

阅读全文…

Asp.Net常用函数库

[ 2006-04-09 01:47:57 | 作者: admin ]
发部一个自已常用的 Asp.Net常用函数库,包括如下常用函数:

把普通字符转换成网页标签
网页标签转换成空白
WinForm 和 WebForm 字符格式转换
计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
截取用户输入长度的文本,并再文本后加‘...’ [中文算两个长度,英文算一个长度]
用于防止SQL注入式攻击检测
去掉文本里的网页标签代码
转换SQL语句插入操作或还原取出文本时可能出现的关键标点符号"'"
新建一个空文件夹
新建一个空文件
删除一个文件夹
删除一个文件
移动一个文件夹
向文件写入文本
获取文件类型
获取文件大小
获取文件最后一次修改时间
跟据当前时间加上四位随机数生成一个文件名
点击下载此文件
我们在做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]+\)?\$";
...

阅读全文…

《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为其赋值。

...

阅读全文…

怎样在.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>
...

阅读全文…

在.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;
...

阅读全文…