C#杂乱知识汇总

  • - 我们在做http请求的时候如果想让返回的格式以json字符串返回: httpClient.DefaultRequestHeaders.Add("Accept","application/json;odata=verbose");

  • HttpClient中有有参构造函数,其中的有参构造函数包括有参数HttpMessageHandler,该参数可以自定义逻辑实现

  • VS2017快捷键:
    Ctrl+F12从任何基类型或基成员转到各种实现;  转到全部(Ctrl+T 或 Ctrl+,):直接转到任何文件/类型/成员/符号声明。可以使用此功能顶部的一排图标,以筛选结果列表或使用查询语法(例如,对文件使用“f searchTerm”、对类型使用“t searchTerm”等).

  • 事务处理
    <1>事务有事务管理器来管理和协调。每个影响事务结果的资源都由一个资源管理器来管理。事务管理器与资源管理器通信,以定义事务的结果。

    <2>ADO.NET事务不支持跨多个连接的事务,它总是关联到一个连接上的本地事务。

    <3>通过System.EnterpriseServices使用事务的优点是,不需要显式地进行事务处理,运行库会自动创建事务,只需要给有事务处理要求的类添加[Transaction]特性即可。[AutoComplete]特性把方法标记为自动设置事务的状态位:如果该方法成功,就设置成功位,因此可以提交事务,如果发生异常,就终止事务。使用System.EnterpriseServices创建事务的一大优点是,多个对象能轻松地运行在同一个事务中,事务还可以自动登记。缺点是它需要COM+主机模型,使用这个技术的类必须派生自基类ServiceComponent

    <4>System.Transactions
    CommittableTransaction是唯一一个支持提交的事务类,这个类有一个Commit方法,所有其他事务类都只能执行回滚。DependentTransaction类用于依赖于其他事务的事务,依赖的事务可以依赖从可提交的事务中创建的事务。

    System.Transactions支持可升级的事务处理,当多个SqlServer数据库连接添加到事务中时,就会进行这种升级,事务开始时是一个本地事务,之后升级为分布式事务。事务的升级需要启动分布式事务协调器(DTC)。如果在系统中升级事务时失败,就应验证DTC服务是否启动,

    System.Transactions的一大优点是环境事务,就不需要手动用连接登记事务,在支持环境事务的资源中,这是自动实现的。

    创建环境事务的一种方式是创建一个CommittableTransaction对象,把它赋予Transaction.Current属性,以初始化环境事务。初始化环境事务的另一种方式是使用TransactionScope类,TransactionScope类的构造函数会创建一个环境事务。

    要在另一个线程中使用同一个环境事务,就需要使用依赖事务。

posted @ 2017-10-15 02:09  tuohaibei  阅读(697)  评论(1编辑  收藏  举报