wdx1992828 发表于 2017-1-13 11:42:36

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

<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>  com.qsoft.commons.beanutils源代码(.net版本的org.apache.commons.beanutils)

  
点击浏览该文件

仿照Apache开源项目org.apache.commons.beanutils(java)的.net版本,实现实体类的一些简化操作(比如实体类的复制,动态赋值,取值),提供动态实体类型,动态实体类,动态属性。
  计划下一步实现对一些复杂对象的动态实体类的封装(比如DataReader,DataTable等)。实现其与动态实体类的转化操作,以及和自定义的静态实体类的转化操作(这个是org.apache.commons.beanutils没有支持的)。
  点击下载源代码

测试代码:



usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingcom.qsoft.commons.beanutils;
usingSystem.Data;

namespacetest_beanutils
...{
classProgram
...{
staticvoidMain(string[]args)
...{
testclone();

testDynaBean();


testDataRow2Bean();


Console.ReadKey();

}

privatestaticvoidtestDataRow2Bean()
...{
Console.WriteLine("测试动态DataTableUtil:");

DataTabledt=newDataTable();
dt.Columns.Add("id",typeof(int));
dt.Columns.Add("name",typeof(string));

DataRowrow=dt.NewRow();
row["id"]=100;
row["name"]="KimmKing";

objectobj=DataTableUtil.dataRow2Bean(row,typeof(MyBean));
Console.WriteLine(obj);
Console.WriteLine();
}

privatestaticvoidtestDynaBean()
...{
Console.WriteLine("测试动态Bean:");

DynaProperty[]property=...{
newDynaProperty("id",typeof(string)),
newDynaProperty("name",typeof(string)),
newDynaProperty("email",typeof(string))


};

BasicDynaClassclazz=newBasicDynaClass("bean",null,property);

BasicDynaBeanbean=newBasicDynaBean(clazz);

//bean.set("qq","100");
bean.set("id","100");
bean.set("name","KimmKing");
bean.set("email","KimmKing@163.com");

Console.WriteLine(bean);
Console.WriteLine();
}

privatestaticvoidtestclone()
...{
Console.WriteLine("测试Bean的clone:");
MyBeanmb1=newMyBean();
mb1.id=100;
mb1.name="KimmKing";

MyBeanmb2=(MyBean)BeanUtils.cloneBean(mb1);

Console.WriteLine(mb2);
Console.WriteLine();
}
}

publicclassMyBean
...{
privateint_id;

publicintid
...{
get...{return_id;}
set...{_id=value;}
}


privatestring_name;

publicstringname
...{
get...{return_name;}
set...{_name=value;}
}


publicoverridestringToString()
...{
return"MyBean"+_id.ToString()+",name="+_name+"]";
}
}
}



  1承诺:首先给你美好的前景描述。一般都是口头上的。给你画一个大饼。
  2 模糊其词的权责:就是对于下一步的事情,可能的问题都不告诉你,让你不确定是否有问题。
  3 工作:凡是在签订协议或是(无协议或特殊工作类型)无订金情况下,要求试着做,先做一部分的都是骗子的典型特征。
  4 合同:严重不公平或是直接违法。正确的合同应该是权责分明的,双方的权力与责任都明确,平等公正,没有歧义。严重偏向一方的合同都不能签。要详细的看每一个条款。对未来可能出现问题的任何一条都不要妥协。凡是以一个不存在的团体为合同一方的都是非法的。
  5 付款:根据经验,凡是工作完成后多少时间(比如一个月等)付款的都是骗子。合法的公司或单位做一件事不会付不起钱,在正规的手续下一般是订金-》完成时付余款。双方有过合作关系相互充分信任的情况下才可以不预付订金。否则可能被骗,或是引起纠纷。
  6 证据:整个过程中,凡是涉及到合作的东西都别用口头上的联系。最好都用email,至少也要用vmsn之类的,保留下来证据,万一引起纠纷这个可以是决定性的东西。对方口头上给你一个额外的任务或是某个承诺,告诉他重新在email里发给你。
  7 证件:一定要看对方的证件,对于团体还要看执照。网络是虚拟的,我们在明处,骗子在暗处,你必须要知道对方是谁,才能降低风险。


  Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1661070
页: [1]
查看完整版本: com.qsoft.commons.beanutils源代码(.net版本的org.apache.commons.beanutils)