反射,LINQ,线程池,WCF,自动更新

ContractedBlock.gif ExpandedBlockStart.gif Code
通过反射机制控制前台的数据项的显示和隐藏     有个需求,笔者比较挠头,要求如果前台有数据项的话 这一行就显示,没有的话,就隐藏。

    如果要是一个一个判断,并通过Panel的Visible属性设置的话,就得写25次,难道没有别的办法了吗?当然有,就用反射机制就可以。

     

Code
protected void Page_PreRender(object sender, EventArgs e)
    {
        PropertyInfo[] pi 
= this.Page.GetType().GetProperties();
        
foreach (PropertyInfo prop in pi)
        {
            
if (prop != null && prop.PropertyType == typeof(string))
            {
                
string val = (string)prop.GetValue(thisnull);
                
if (string.IsNullOrEmpty(val))
                {
                    
string pnName = "pn_" + prop.Name;
                    
if (Page.FindControl(pnName) != null)
                    {
                        Page.FindControl(pnName).Visible 
= false;
                    }
                }
            }
        }
    }
    需要注意的是:
    第一,应当放在PreRender事件中;
    第二,必须有一个判断,就是必须属性器是字符串类型;
    第三,Panel的ID命名有一个约定,就是“pn_”开头,后面跟属性器的名字。


WCF时如果有DataTable   如果用JAVA来调用的话。。可以采用下面的方式
JAVA处理含有DataSet的web services:http:
//www.javaeye.com/topic/39025


使用LINQ查询非泛型类型 
   var cc1 
= from car in carList.Cast<Cars>()
2              where car.CarMake == "BMW"
3              select car;

,除了Cast运算符,我们也可以使用OfType


OfType可以过滤集合中相同类型的元素,如果你的集合中包含了不同类型的元素。这个方法得到指定类型的元素对象。
var cc2 
= from car in carList.OfType<Cars>()
2              where car.CarMake == "BMW"
3              select car;
考虑使用下面的这种方式来查询


C#实现软件自动升级 
由于程序在运行时不能用新的版本覆盖自己,因此,我们将登录窗口单独做成一个可执行文件,
用户登录时,从网上检测是否有新的主程序,如果有,则从后台下载并覆盖老的版本,用户输入正确的用户名和密码后,
通过参数将必要的信息(如用户名、密码等)传递给主程序,实现登录,我们还是以实际例子来说明。


多线程的还是用线程池来做是比较好的。

ThreadPool.QueueUserItem(委托调用吧);

查看数组中哪些是有相同的值
return stra.Intersect(strb).Intersect(strc);

繁简体转换。。 中文字的分析
http:
//blog.csdn.net/net_lover/archive/2009/04/20/4095606.aspx

转载于:https://www.cnblogs.com/z2002m/archive/2009/04/24/1443021.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值