反射 屬性標籤 通用Excel匯入導

2021-06-26 12:46:32 字數 614 閱讀 9478

在做通用匯入匯出的時候,最關鍵的應該就是實體匯出匯入的順序了,但是編譯器在編譯的時候又無法自定義屬性編譯的順序,所以需要乙個自定義的特性標籤來指定實體類匯出的順序,然後通過自定義的比較器將屬性排序

因為wcf中無法對實體類的自定義特性進行描述,所以獲取不到我們自定義的orderattribute,雖然datamemberattribute中的order屬性是描述屬性序列化的順序,但是因為沒有對序列化排序沒有特殊的要求,於是就用它代替了,起初發射之後總是倒數兩個order屬性的值是正常的,其他的都為-1,後來發現生成的順序也是按order生成的,於是就沒有深究了(如果有深入研究的朋友 希望指點一下)。

45class program

static void main(string args)

//過濾掉沒有打排序標籤的屬性

list pis = typeof(people).getproperties().where(p => p.getcustomattributes(typeof(orderattribute), false).any()).tolist();

//自定義比較器排序

pis.sort(new ordercomparator());

console.readkey();

利用反射實現EXCEL匯入

業務需求是這樣的 1.客戶需要匯入excel檔案 2.excel檔案中有4個sheet 3.每個sheet名與其sheet內的欄位名是固定的 想實現,將4個sheet匯入資料庫中 我的實現是 1.定義介面 public inte ce iresource 2.定義sheet物件 public cla...

Sql 匯入 EXCEL 通用儲存過程

sql 匯入excel 通用儲存過程 下面兩句在建立儲存過程時必須先執行,否則不能建立本儲存過程,或者呼叫出錯 set ansi warnings on 返回警告 go set ansi nulls on 指定在對空值使用等於 和不等於 比較運算子時,這些運算子的sql 92 遵從行為。go 將ex...

Sql 匯入 EXCEL 通用儲存過程

sql 匯入 excel 通用儲存過程 2008 01 10 15 41 下面兩句在建立儲存過程時必須先執行,否則不能建立本儲存過程,或者呼叫出錯 set ansi warnings on 返回警告 goset ansi nulls on 指定在對空值使用等於 和不等於 比較運算子時,這些運算子的 ...