欢迎来到天天文库
浏览记录
ID:39546558
大小:58.50 KB
页数:11页
时间:2019-07-05
《C#态添加修改删除类属性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Reflection.Emit;usingSystem.Reflection;usingSystem.Threading;///////类帮助器,可以动态对类,类成员进行控制(添加,删除),目前只支持属性控制///注意,属性以外的其它成员会被清空,功能还有待完善,使其不影响其它成员///publicclassClassHelper{#regi
2、on公有方法//////根据类的类型型创建类实例//////将要创建的类型///返回创建的类实例publicstaticobjectCreateInstance(Typet){returnActivator.CreateInstance(t);}/**///////根据类的名称,属性列表创建型实例//////将要创建的类
3、的名称///将要创建的类的属性列表///返回创建的类实例publicstaticobjectCreateInstance(stringclassName,Listlcpi){Typet=BuildType(className);t=AddProperty(t,lcpi);returnActivator.CreateInstance(t);}/**///////根据属
4、性列表创建类的实例,默认类名为DefaultClass,由于生成的类不是强类型,所以类名可以忽略//////将要创建的类的属性列表///返回创建的类的实例publicstaticobjectCreateInstance(Listlcpi){returnCreateInstance("DefaultClass",lcpi);}/**///////根据类的实例设置类
5、的属性//////将要设置的类的实例///将要设置属性名///将要设置属性值publicstaticvoidSetPropertyValue(objectclassInstance,stringpropertyName,objectpropertSetValue){classInstance.G
6、etType().InvokeMember(propertyName,BindingFlags.SetProperty,null,classInstance,newobject[]{Convert.ChangeType(propertSetValue,propertSetValue.GetType())});}/**///////根据类的实例获取类的属性//////将要获取的类的实例///7、opertyName">将要设置的属性名///返回获取的类的属性publicstaticobjectGetPropertyValue(objectclassInstance,stringpropertyName){returnclassInstance.GetType().InvokeMember(propertyName,BindingFlags.GetProperty,null,classInstance,newobject[]{});}/**////8、y>///创建一个没有成员的类型的实例,类名为"DefaultClass"//////返回创建的类型的实例publicstaticTypeBuildType(){returnBuildType("DefaultClass");}/**////
7、opertyName">将要设置的属性名///返回获取的类的属性publicstaticobjectGetPropertyValue(objectclassInstance,stringpropertyName){returnclassInstance.GetType().InvokeMember(propertyName,BindingFlags.GetProperty,null,classInstance,newobject[]{});}/**////8、y>///创建一个没有成员的类型的实例,类名为"DefaultClass"//////返回创建的类型的实例publicstaticTypeBuildType(){returnBuildType("DefaultClass");}/**////
8、y>///创建一个没有成员的类型的实例,类名为"DefaultClass"//////返回创建的类型的实例publicstaticTypeBuildType(){returnBuildType("DefaultClass");}/**////
此文档下载收益归作者所有