Silverlight項目筆記6:Linq求差集、交集&檢查網絡鏈接狀態&重載構造函數複用窗口

1.使用Linq求差集、交集

     使用場景:數據庫

     須要從數據中心得到用戶數據,並以此爲標準,同步系統的用戶信息,對系統中多餘的用戶進行刪除操做,缺失的用戶進行添加操做,對信息更新了的用戶進行編輯操做更新。網絡

     因此須要經過對數據中心以及系統現有用戶信息進行比較,分爲三部分:函數

    (1) Linq取差集,找出須要刪除的用戶數據,進行刪除(USERNAME爲惟一值字段)。3d

            使用的是Except這個方法。blog

     

    (2)使用Linq提供的Intersect方法,取得兩個用戶集合的交集,遍歷檢查進行更新。同步

     

    (3)一樣再次取差集,但此次是新的用戶信息集合Except現有用戶信息,獲取須要添加的數據集合,執行添加操做。it

     

2.檢查網絡鏈接狀態

    通常的網絡請求方法都會返回鏈接的狀態信息,好比iOS中NSURLConnection對應「- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse*)response 」(固然如今推薦使用NSURLSession或AFNetworking等第三方庫)io

    C#確定也提供了相似的方法,即GetResponseAsync,得到請求的HTTP代碼進行進行判斷。遍歷

    

    須要注意的是,在這以前還應該對URL地址輸入框進行一個輸入驗證,由於可能輸入的就不是一個URL地址。構造函數

    對於ArcGIS的動態服務ArcGISDynamicMapServiceLayer以及切片服務ArcGISTiledMapServiceLayer,也能夠經過InitializationFailed這個方法作一個簡單的服務有效性驗證。

3.重載構造函數複用窗口

   使用場景:

   須要作建立角色以及編輯角色兩種操做,操做窗口顯示的信息徹底同樣,差別在於編輯角色信息時不能修改角色名稱,以及數據庫交互略有差別。

   因此徹底能夠只畫一個窗口,針對不一樣場景作不一樣操做。經過重載構造函數(編輯操做對應的構造函數須要傳入角色信息),並設定一個字段標識方便差別化處理便可。

   對於窗口中顯示是否可以編輯,對輸入框的IsReadOnly屬性進行綁定,編輯操做時屬性值爲true,只讀;

   對於窗口名稱,一樣作綁定處理,根據不一樣操做顯示不一樣名稱;

   對於數據庫交互差別,一樣能夠經過判斷標識符canEdit對差別化部分分類處理。

   

   

   

相關文章
相關標籤/搜索