程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 反射動態判斷轉換屬性類型值生成類實例

C# 反射動態判斷轉換屬性類型值生成類實例

編輯:C#入門知識

///


/// 為指定對象分配參數
///

/// 待賦值的類型
/// 字段/值
///
private T Assign(Dictionary dic) where T : new()
{
Type t = typeof (T);
T entity = new T();
var fields = t.GetProperties();

string val = string.Empty;
object obj = null;
foreach (var field in fields)
{
if (!dic.Keys.Contains(field.Name))
continue;
val = dic[field.Name];
//非泛型
if (!field.PropertyType.IsGenericType)
obj = string.IsNullOrEmpty(val) ? null : Convert.ChangeType(val, field.PropertyType);
else //泛型Nullable<>
{
Type genericTypeDefinition = field.PropertyType.GetGenericTypeDefinition();
if (genericTypeDefinition == typeof (Nullable<>))
{
obj = string.IsNullOrEmpty(val)
? null
: Convert.ChangeType(val, Nullable.GetUnderlyingType(field.PropertyType));
}
}
field.SetValue(entity, obj, null);
}


return entity;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved