C# 属性反射
#region?打印對象所有屬性
///?<summary>
///?打印對象所有屬性
///?</summary>
///?<param?name="obj"></param>
///?<returns></returns>
public?static?string?PrintAttribute(object?obj)
{
????StringBuilder?strBuilder?=?new?StringBuilder();
????//組合Attribute屬性
????foreach?(FieldInfo?field?in?obj.GetType().GetFields())
????{
????????if?(field.FieldType?!=?typeof(byte[]))
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?field.Name,?field.GetValue(obj)));
????????}
????????else?if?(field.GetValue(obj)?!=?null)
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?field.Name,?CommonUtility.ByteArrayToHexString((byte[])field.GetValue(obj))));
????????}
????}
????//組合Property屬性
????foreach?(PropertyInfo?property?in?obj.GetType().GetProperties())
????{
????????if?(property.PropertyType?!=?typeof(byte[]))
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?property.Name,?property.GetValue(obj,?null)));
????????}
????????else?if?(property.GetValue(obj,?null)?!=?null)
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?property.Name,?CommonUtility.ByteArrayToHexString((byte[])property.GetValue(obj,?null))));
????????}
????}
????return?strBuilder.ToString();
}
#endregion
///?<summary>
///?打印對象所有屬性
///?</summary>
///?<param?name="obj"></param>
///?<returns></returns>
public?static?string?PrintAttribute(object?obj)
{
????StringBuilder?strBuilder?=?new?StringBuilder();
????//組合Attribute屬性
????foreach?(FieldInfo?field?in?obj.GetType().GetFields())
????{
????????if?(field.FieldType?!=?typeof(byte[]))
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?field.Name,?field.GetValue(obj)));
????????}
????????else?if?(field.GetValue(obj)?!=?null)
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?field.Name,?CommonUtility.ByteArrayToHexString((byte[])field.GetValue(obj))));
????????}
????}
????//組合Property屬性
????foreach?(PropertyInfo?property?in?obj.GetType().GetProperties())
????{
????????if?(property.PropertyType?!=?typeof(byte[]))
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?property.Name,?property.GetValue(obj,?null)));
????????}
????????else?if?(property.GetValue(obj,?null)?!=?null)
????????{
????????????strBuilder.AppendLine(string.Format("[{0}]:{1}",?property.Name,?CommonUtility.ByteArrayToHexString((byte[])property.GetValue(obj,?null))));
????????}
????}
????return?strBuilder.ToString();
}
#endregion
總結
- 上一篇: GNU make manual 翻译(七
- 下一篇: JS跨域控制IFrame高度自适应