背景
客戶端接入了多家廠商的產品,這時候需要將各家廠商定義的類,統一成我們自己的類。
利用反射實現,不必乙個乙個手動去新建物件賦值。
缺陷:目前只能轉系統自定義的基本型別,無法轉換複雜型別(類中包含類,或者list)
1.定義類中我們要轉換的物件
[attributeusage(attributetargets.property, allowmultiple = false, inherited = false)]
public class entityattribute : attribute
}private type _dbtype;
/// /// 字段型別
///
public type dbtype
}public entityattribute(string fields)
/// /// 標準
///
///
///
public entityattribute(string fields, type dbtype)
}
2.幫助類用來進行互相轉換
public static c servertoclient(s serverobj) where c : new()}}
}}
return clientobj;
}public static s clienttoserver(c clientobj) where s : new()
break;}}
}}
}return serverobj;
}
3.測試
class program
}public class schoolreportclient
public string grade
public scoreclient scoretest
public listscores
public listscoreslist
}public class scoreclient
public int score
}public class schoolreportserver
[entity("grade")]
public string grade
// [entity("scoretest", typeof(scoreclient))]
public scoreserver scoretest
// [entity("scores", typeof(list))]
public listscores
[entity("scoreslist", typeof(list))]
public listscoreslist
}public class scoreserver
[entity("score", typeof(int32))]
public int score
public scoreserver(string subject, int score)
}
利用Attribute簡化SQL刪除操作
昨天跟朋友聊天,發現他們的專案資料層使用的是最基礎的純sql語句 sqlparameter進行資料互動的,大家知道select update create對於表的依賴性比較大,然後刪除語句卻不一樣,它的語法比較簡單,大致有以下幾種 1 delete from tablename 2 delete f...
c 利用模板類實現氣泡排序
模板是一種對型別進行引數化的工具,通常有兩種形式 函式模板和類模板。函式模板針對僅引數型別不同的函式 類模板針對僅資料成員和成員函式型別不同的類。函式模板的格式 template 返回型別 函式名 引數列表 1 template和class是關鍵字,class可以用typename關鍵字代替,在這裡...
C 使用特性 Attribute 來漢化列舉類
一 新建列舉 public enum crud 二 新建特性類public sealed class chineseattribute attribute public chineseattribute string chinese 未漢化 三 利用反射獲取特性 這裡我們寫乙個列舉類的擴充套件方法 ...