C# Model To Model

/// <summary>

/// 方法目的:當(dāng)一個(gè)類(T)已經(jīng)有值,但是這個(gè)時(shí)候需要對另一個(gè)類(Tn)賦值

/// 并且 兩個(gè)類存在相同字段名稱(最終目的把兩個(gè)類中相同字段直接賦值);

/// 例:class MenuTB{ public string Name{get;set;}}? class ShowMenuModel{ public string Name{get;set;}}

/// 備注:下面例子Tn是繼承T后新的類返回值

/// T->MenuTB

?/// Tn->ShowMenuModel

// 調(diào)用方法:ShowMenuModel fmodel = ModelToModel<MenuTB, ShowMenuModel>(frow,new ShowMenuModel());

? ? ? ? /// </summary>

? ? ? ? /// <typeparam name="T">被繼承的類</typeparam>

? ? ? ? /// <typeparam name="Tn">繼承T后新的類</typeparam>

? ? ? ? /// <param name="objmodel">T類的參數(shù)值</param>

? ? ? ? /// <param name="nobjModel">Tn類一個(gè)空的實(shí)例化</param>

? ? ? ? /// <returns></returns>

? ? ? ? public Tn ModelToModel<T, Tn>(T objmodel, Tn nobjModel)

? ? ? ? {

? ? ? ? ? ? Tn Nobjmodel = nobjModel;

? ? ? ? ? ? //被繼承的類

? ? ? ? ? ? Type modelType = typeof(T);

? ? ? ? ? ? Type newModel = typeof(Tn);//繼承后的新類

? ? ? ? ? ? PropertyInfo[] newpropertys = modelType.GetProperties();//列舉出新的類中信息

? ? ? ? ? ? //循環(huán)新類的屬性

? ? ? ? ? ? foreach (PropertyInfo pi in newpropertys)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? string ParaName = pi.Name;//參數(shù)名稱

? ? ? ? ? ? ? ? string ParamType = pi.PropertyType.Name;//字段類型 int/DateTime/string 等等

? ? ? ? ? ? ? ? object vaule = modelType.GetProperty(ParaName).GetValue(objmodel, null);//從被繼承的類中根據(jù)相同字段名稱讀取類的值

? ? ? ? ? ? ? ? newModel.GetProperty(ParaName).SetValue(Nobjmodel, vaule, null);//給新版本的類參數(shù)賦值

? ? ? ? ? ? }

? ? ? ? ? ? return Nobjmodel;

? ? ? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容