zoukankan      html  css  js  c++  java
  • Silverlight项目笔记6:Linq求差集、交集&检查网络连接状态&重载构造函数复用窗口

    1.使用Linq求差集、交集

         使用场景:

         需要从数据中心获得用户数据,并以此为标准,同步系统的用户信息,对系统中多余的用户进行删除操作,缺失的用户进行添加操作,对信息更新了的用户进行编辑操作更新。

         所以需要通过对数据中心以及系统现有用户信息进行比较,分为三部分:

        (1) Linq取差集,找出需要删除的用户数据,进行删除(USERNAME为唯一值字段)。

                使用的是Except这个方法。

         

        (2)使用Linq提供的Intersect方法,取得两个用户集合的交集,遍历检查进行更新。

         

        (3)同样再次取差集,但这次是新的用户信息集合Except现有用户信息,获取需要添加的数据集合,执行添加操作。

         

    2.检查网络连接状态

        一般的网络请求方法都会返回连接的状态信息,比如iOS中NSURLConnection对应“- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse*)response ”(当然现在推荐使用NSURLSession或AFNetworking等第三方库)

        C#肯定也提供了类似的方法,即GetResponseAsync,获得请求的HTTP代码进行进行判断。

        

        需要注意的是,在这之前还应该对URL地址输入框进行一个输入验证,因为可能输入的就不是一个URL地址。

        对于ArcGIS的动态服务ArcGISDynamicMapServiceLayer以及切片服务ArcGISTiledMapServiceLayer,也可以通过InitializationFailed这个方法做一个简单的服务有效性验证。

    3.重载构造函数复用窗口

       使用场景:

       需要做创建角色以及编辑角色两种操作,操作窗口显示的信息完全一样,差异在于编辑角色信息时不能修改角色名称,以及数据库交互略有差异。

       所以完全可以只画一个窗口,针对不同场景做不同操作。通过重载构造函数(编辑操作对应的构造函数需要传入角色信息),并设定一个字段标识方便差异化处理即可。

       对于窗口中显示是否能够编辑,对输入框的IsReadOnly属性进行绑定,编辑操作时属性值为true,只读;

       对于窗口名称,同样做绑定处理,根据不同操作显示不同名称;

       对于数据库交互差异,同样可以通过判断标识符canEdit对差异化部分分类处理。

       

       

       

  • 相关阅读:
    DevExpress v17.2新版亮点—ASP.NET篇(一)
    使用MyEclipse将HTML5移动项目迁移到PhoneGap(一)
    DevExpress v17.2新版亮点—WPF篇(七)
    什么是SpringBoot?
    application.yml中常用参数设置
    什么是MyBatis?
    什么是Spring?
    项目访问路径去掉默认的项目名
    StringUtils常用方法介绍
    Spring学习----自动装配@Resource、@Autowired、@Qualifier
  • 原文地址:https://www.cnblogs.com/colinhou/p/3947675.html
Copyright © 2011-2022 走看看