我的廣告單元,有空點一下哦,謝謝!
直接上例子了,廢話不多說,大家一看就懂。
代碼內容:
實體類:
public
class userinfo
{
public userinfo()
{ }
#region 成員
private int _userid;
private string
_username;
private string _password;
private int
_roleid;
private string _telephone;
private string
_usersex;
private string _address;
private string
_email;
private string _logintime;
private string
_createtime;
#endregion
#region 屬性
public int userid
{
get { return
_userid; }
set { _userid = value; }
}
public string username
{
get { return _username;
}
set { _username = value; }
}
public string password
{
get { return _password;
}
set { _password = value; }
}
public int roleid
{
get { return _roleid;
}
set { _roleid = value; }
}
public string telephone
{
get { return _telephone;
}
set { _telephone = value; }
}
public string usersex
{
get { return _usersex;
}
set { _usersex = value; }
}
public string address
{
get { return _address;
}
set { _address = value; }
}
public string email
{
get { return _email;
}
set { _email = value; }
}
public string logintime
{
get { return _logintime;
}
set { _logintime = value; }
}
public string createtime
{
get { return _createtime;
}
set { _createtime = value; }
}
private string ReturnAutoID()
{
return
"userid";
}
#endregion
}
反射方法類:
using
System;
using System.Collections.Generic;
using System.Linq;
using
System.Text;
using System.Reflection;namespace
Reflecti
{
public class GetModelInfo
{
///
<summary>
/// 通過反射獲得對象名稱和自動成長ID
///
</summary>
/// <param
name="obj">對象</param>
///
<returns>返回string數組</returns>
public static string[]
Core(Object obj)
{
string[] str=new
string[2];
Type T = obj.GetType();
MethodInfo mi =
T.GetMethod("ReturnAutoID",
BindingFlags.NonPublic
|
BindingFlags.Instance,
null, new
Type[] { }, null);
//通過反射執行ReturnAutoID方法,返回AutoID值
string str1 = mi.Invoke(obj,
null).ToString();
str[1] = str1;
str[0] =
T.Name.ToString();
//返回該Obj的名稱以及ReturnAutoID的值
return str;
}
}
}
調用:
userinfo _userinfo =
new userinfo();
MessageBoxShow("實體類類名:"GetModelInfo.Core(_userinfo)[1] + "
自動ID:"+GetModel.Core(_userinfo)[0]);
OK,趕快測試下吧,通過這個例子你可以舉一反三,獲得很多其他的收穫
其他知識點:
使用 Assembly 定義和載入程式集,載入在資訊清單中列出的模組,以及從此程式集中尋找類型並建立該類型的執行個體。
使用 Module 瞭解如下的類似資訊:包含模組的程式集以及模組中的類等。您還可以擷取在模組上定義的所有全域方法或其他特定的非全域方法。
使用 ConstructorInfo 瞭解以下資訊:建構函式的名稱、參數、存取修飾詞(如 public 或 private)和實現詳細資料(如
abstract 或 virtual)等。使用 Type 的 GetConstructors 或 GetConstructor
方法來調用特定的建構函式。
使用 MethodInfo 瞭解以下資訊:方法的名稱、傳回型別、參數、存取修飾詞(如 public 或 private)和實現詳細資料(如
abstract 或 virtual)等。使用 Type 的 GetMethods 或 GetMethod 方法來調用特定的方法。
使用 FieldInfo 瞭解以下資訊:欄位的名稱、存取修飾詞(如 public 或 private)和實現詳細資料(如
static)等;並擷取或設定欄位值。
使用 EventInfo 來瞭解如下的類似資訊:事件的名稱、事件處理常式資料類型、自訂屬性、宣告類型和反射類型等;並添加或移除事件處理常式。
使用 PropertyInfo 來瞭解如下的類似資訊:屬性的名稱、資料類型、宣告類型、反射類型和唯讀或可寫狀態等;並擷取或設定屬性值。
使用 ParameterInfo 來瞭解如下的類似資訊:參數的名稱、資料類型、參數是輸入參數還是輸出參數,以及參數在方法簽名中的位置等。