zoukankan
html css js c++ java
补充一个技术文章吧,否则真的对不起博客园
/**/
///
<summary>
较安全的返回指定属性的值
</summary>
///
<remarks>
///
例如,如果你想获得Company的CompanyCode的DefaultCode属性,可以使用
///
<code>
///
object code = _company.SafeGetValue("CompanyCode.DefaultCode");
///
</code>
///
但注意:
///
传入的参数(属性名)不允许书写错误,在此方法中不对此进行检查;
///
</remarks>
public
object
SafeGetValue(
string
propertyName)
{
string
[] props
=
propertyName.Split(
'
.
'
);
string
propName;
PropertyInfo propInfo;
object
obj
=
this
;
Type objType;
for
(
int
i
=
0
; i
<
props.Length; i
++
)
{
objType
=
obj.GetType();
propName
=
props[i];
if
(propName.Trim().Length
==
0
)
throw
new
ArgumentException(
"
propertyName
"
);
try
{
propInfo
=
objType.GetProperty(propName);
if
(propInfo
==
null
)
throw
new
ArgumentException(
"
propertyName
"
);
obj
=
propInfo.GetValue(obj,
null
);
}
catch
(AmbiguousMatchException)
{
PropertyDescriptorCollection propDescs
=
TypeDescriptor.GetProperties(objType);
PropertyDescriptor propDesc
=
propDescs.Find(propName,
false
);
if
(propDesc
==
null
)
throw
new
ArgumentException(
"
propertyName
"
);
else
{
obj
=
propDesc.GetValue(obj);
}
}
if
(obj
==
null
)
return
null
;
}
return
obj;
}
查看全文
相关阅读:
MongoDB简单使用
mongodb安装部署
分布式通信-序列化
分布式通信协议
分布式概念
springboot-事件
spring-事件
spring-@Component/@ComponentScan注解
springboot-Date日期时间问题
enginx:基于openresty,一个前后端统一,生态共享的webstack实现
原文地址:https://www.cnblogs.com/tansm/p/83582.html
最新文章
2020-11-17:java中,吞吐量优先和响应时间优先的回收器是哪些?
2020-11-16:手写代码:leetcode第406题。假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。
scrapy爬取腾讯招聘信息
python3多线程糗事百科案例
Python3 多线程
多线程糗事百科案例(python2)
极验滑动验证码的识别
爬取【王琳杰-博客园】的博文
处理给规范的文字
糗事百科实例
热门文章
使用XPath的爬虫,百度贴吧图片下载
正则表达式
php面向对象特性二
mysql-数据获取过程
mysql体系原理
数据库简介
php面向对象特性(一)
php面向对象--简介
【底层原理】进程与线程的一个简单解释
MongoDB复制集技术
Copyright © 2011-2022 走看看