
你是想通过反射获得该类所有属性值或是给所有属性赋值吧。用getMethods获取所有的getter和setter方法,再取值或赋值。但不要用getDeclaredMethods,因为getMethods反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法;而getDeclaredMethods反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
这也许是框架注入属性值都采用setter注入的原因吧。
Class<> cls=ClassforName(className);//通过类的名称反射类
Object obj=clsnewInstance();//对象实例化
Field field=clsgetField(fieldName);//这个对应的是属性
fieldValue=fieldget(obj);//这个就是属性的值
class
Program
{
static
void
Main(string[]
args)
{
string
path
=
@"D:\OpenSSL";
//
ConsoleWriteLine(isDir(path));
//ConsoleRead();
Man
man
=
new
Man();
Type
type
=
manGetType();
PropertyInfo[]
infos
=
typeGetProperties();
foreach
(PropertyInfo
info
in
infos)
{
ConsoleWriteLine(infoDeclaringTypeFullName
+
"
,
"
+
infoName);
}
ConsoleRead();
}
}
public
class
Person
{
public
string
name
{
get;
set;
}
public
string
password
{
get;
set;
}
}
public
class
Man
:
Person
{
public
string
height
{
get;
set;
}
public
string
weight
{
get;
set;
}
}
比较笨的办法。
肯定有更优解决方案。
以上就是关于通过反射,如何获得子类继承自父类的属性全部的内容,包括:通过反射,如何获得子类继承自父类的属性、java怎么通过反射得到属性的类型、C# 反射获取属性的时候如何只获取该类的属性,我不想取得父类的属性。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)