博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
com.qsoft.commons.beanutils源代码(.net版本的org.apache.commons.beanutils)
阅读量:4190 次
发布时间:2019-05-26

本文共 2661 字,大约阅读时间需要 8 分钟。

2007年06月21日 18:29:00

com.qsoft.commons.beanutils源代码(.net版本的org.apache.commons.beanutils)

仿照Apache开源项目org.apache.commons.beanutils(java)的.net版本,实现实体类的一些简化操作(比如实体类的复制,动态赋值,取值),提供动态实体类型,动态实体类,动态属性。

计划下一步实现对一些复杂对象的动态实体类的封装(比如DataReader,DataTable等)。实现其与动态实体类的转化操作,以及和自定义的静态实体类的转化操作(这个是org.apache.commons.beanutils没有支持的)。

点击下载源代码

测试代码:
using
System;
using
System.Collections.Generic;
using
System.Text;
using
com.qsoft.commons.beanutils;
using
System.Data;
namespace
test_beanutils
{
class Program
{
static void Main(string[] args)
{
testclone();
testDynaBean();
testDataRow2Bean();
Console.ReadKey();
}
private static void testDataRow2Bean()
{
Console.WriteLine(
"测试动态DataTableUtil:");
DataTable dt
= new DataTable();
dt.Columns.Add(
"id", typeof(int));
dt.Columns.Add(
"name", typeof(string));
DataRow row
= dt.NewRow();
row[
"id"] = 100;
row[
"name"] = "Kimm King";
object obj = DataTableUtil.dataRow2Bean(row, typeof(MyBean));
Console.WriteLine(obj);
Console.WriteLine();
}
private static void testDynaBean()
{
Console.WriteLine(
"测试动态Bean:");
DynaProperty[] property
= {
new DynaProperty("id", typeof(string)),
new DynaProperty("name", typeof(string)),
new DynaProperty("email", typeof(string))
}
;
BasicDynaClass clazz
= new BasicDynaClass("bean", null, property);
BasicDynaBean bean
= new BasicDynaBean(clazz);
//bean.set("qq", "100");
bean.set("id", "100");
bean.
set("name", "Kimm King");
bean.
set("email", "KimmKing@163.com");
Console.WriteLine(bean);
Console.WriteLine();
}
private static void testclone()
{
Console.WriteLine(
"测试Bean的clone:");
MyBean mb1
= new MyBean();
mb1.id
= 100;
mb1.name
= "Kimm King";
MyBean mb2
= (MyBean)BeanUtils.cloneBean(mb1);
Console.WriteLine(mb2);
Console.WriteLine();
}
}
public class MyBean
{
private int _id;
public int id
{
get { return _id; }
set { _id = value; }
}
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}
public override string ToString()
{
return "MyBean[id=" + _id.ToString() + ",name=" + _name + "]";
}
}
}

1 承诺:首先给你美好的前景描述。一般都是口头上的。给你画一个大饼。

2 模糊其词的权责:就是对于下一步的事情,可能的问题都不告诉你,让你不确定是否有问题。

3 工作:凡是在签订协议或是(无协议或特殊工作类型)无订金情况下,要求试着做,先做一部分的都是骗子的典型特征。

4 合同:严重不公平或是直接违法。正确的合同应该是权责分明的,双方的权力与责任都明确,平等公正,没有歧义。严重偏向一方的合同都不能签。要详细的看每一个条款。对未来可能出现问题的任何一条都不要妥协。凡是以一个不存在的团体为合同一方的都是非法的。

5 付款:根据经验,凡是工作完成后多少时间(比如一个月等)付款的都是骗子。合法的公司或单位做一件事不会付不起钱,在正规的手续下一般是订金-》完成时付余款。双方有过合作关系相互充分信任的情况下才可以不预付订金。否则可能被骗,或是引起纠纷。

6 证据:整个过程中,凡是涉及到合作的东西都别用口头上的联系。最好都用email,至少也要用vmsn之类的,保留下来证据,万一引起纠纷这个可以是决定性的东西。对方口头上给你一个额外的任务或是某个承诺,告诉他重新在email里发给你。

7 证件:一定要看对方的证件,对于团体还要看执照。网络是虚拟的,我们在明处,骗子在暗处,你必须要知道对方是谁,才能降低风险。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1661070

你可能感兴趣的文章
如何避免遗漏bug
查看>>
oracle性能测试
查看>>
日常性能测试的流程
查看>>
性能测试工程师的面试题
查看>>
浅谈流媒体测试
查看>>
如何提高功能自动化工具在实际工作中的覆盖
查看>>
loadrunner中的事务
查看>>
客户协作 over 合同谈判
查看>>
敏捷团队建设
查看>>
敏捷需求分析
查看>>
Struts多模块的技巧
查看>>
OO的CSS尝试
查看>>
使用jMock辅助单元测试
查看>>
Generics Types 泛型学习笔记
查看>>
用PicoContainer和Nanning实现事务管理
查看>>
Generics Types 泛型学习笔记
查看>>
泛型(Generics Types)学习笔记
查看>>
介绍 IoC
查看>>
WEB报表至WORD,打印工具类库
查看>>
DOM4J 使用简介
查看>>