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;
}
查看全文
相关阅读:
20165311《网络对抗技术》Exp1 PC平台逆向破解
20165311 《网络对抗技术》 Kali安装
2018-2019-1 20165307 20165327 20165332 实验五 通讯协议设计
2018-2019-1 20165307 20165327 20165332 实验四 外设驱动程序设计
2018-2019-1 20165307 20165327 20165332 实验三 并发程序
2018-2019-1 20165307 20165327 20165332 实验二 固件程序设计
2018-2019-1 20165307 20165327 20165332 实验一 开发环境的熟悉
2018-2019-1 20165307 《信息安全系统设计基础》第4周学习总结
2018-2019-1 20165307 《信息安全系统设计基础》第3周学习总结
20165307 《信息安全系统设计基础》 第一周
原文地址:https://www.cnblogs.com/tansm/p/83582.html
最新文章
2018-2019-1 20165329 20165311 20165334 实验二 固件程序设计
2018-2019-1 20165329《信息安全系统设计基础》第五周学习总结
2018-2019-1 20165323 20165333 20165336 实验五 通讯协议设计
2018-2019-1 20165323《信息安全系统设计基础》第九周学习总结
2018-2019-1 20165323 20165333 20165336 实验四 外设驱动程序设计
2018-2019-1 20165323 《信息安全系统设计基础》第八周学习总结
2018-2019-1 20165323 实验三 实时系统
2018-2019-1 20165323 《信息安全系统设计基础》第七周学习总结
2018-2019-1 20165323 《信息安全系统设计基础》第六周学习总结
2018-2019-1 20165323 20165333 20165336 实验二 固件程序设计
热门文章
2018-2019-1 20165323 《信息安全系统设计基础》第5周学习总结
2018-2019-1 20165336 20165323 20165333 实验一 开发环境的熟悉
2018-2019-2 网络对抗技术 20165311 Exp 9 Web安全基础
2018-2019-2 网络对抗技术 20165311 Exp 8 Web基础
20165311《网络对抗》网络欺诈技术防范
2018-2019-2 网络对抗技术 20165311 Exp6 信息搜集与漏洞扫描
2018-2019-2 20165311《网络对抗技术》Exp5 MSF基础应用
2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践
Copyright © 2011-2022 走看看