关闭
当前搜索:

Autofac官方文档(二十一)【应用集成之OWIN】

OWIN全称Open Web Interface for .NET(.NET的开放式Web接口),是一种更简单的模型,用于(在不将应用程序绑定到Web服务器的情况下)编写基于Web的应用程序。为此,使用“中间件”的概念来创建请求所经过的管道。由于OWIN处理应用程序管道(检测请求何时开始/结束等)的方式的差异,将Autofac集成到OWIN应用程序中与将其集成到更多“标准”ASP.NET应用程序的方...
阅读(2) 评论(0)

Autofac官方文档(二十)【应用集成】

ASP.NET OWIN Quick Start Dependency Injection in Middleware Controlling Middleware Order Example MVC Quick Start...
阅读(20) 评论(0)

Autofac官方文档(十九)【模块】

介绍IoC使用组件作为应用程序的基本构建块。提供对组件的构造函数参数和属性的访问通常被用作实现部署时配置的手段。这通常是一个可疑的做法,原因如下: 构造函数可以改变:对构造函数签名或组件属性的更改可能会中断部署的App.config文件 - 这些问题在开发过程中可能会出现很晚。 JSON/XML难以维护:大量组件的配置文件可能难以维护。 “代码”开始在配置中显示:暴露类的属性和构造函数参数是对应用程...
阅读(38) 评论(0)

Autofac官方文档(十八)【JSON/XML 配置】

大多数IoC容器提供编程接口以及基于JSON/XML文件的配置支持,Autofac也不例外。Autofac鼓励通过ContainerBuilder类进行编程配置。使用编程接口是容器设计的核心。 如果在编译时无法选择或配置具体类,则建议使用JSON或XML。在深入研究JSON/XML配置之前,一定要阅读模块 - 这解释了如何处理比基本的JSON/XML组件注册所允许的更复杂的场景。 JSON/XML中...
阅读(12) 评论(0)

Autofac官方文档(十七)【配置】

JSON/XML Configuration Configuring With Microsoft Configuration (4.0+) Quick Start Default Assembly Components Modules Type Names...
阅读(13) 评论(0)

Autofac官方文档(十六)【在启动时运行代码】

Autofac提供了在构建容器时通知组件或自动激活组件的功能。有三种自动激活机制可用: - 可启动组件 - 自动激活组件 - 容器构建回调在所有情况下,当容器建成时,组件将被激活。可启动的组件一个可启动的组件是容器在最初构建时被容器激活的组件,并且有一个特定的方法被调用来引导组件上的一个动作。关键是要实现Autofac.IStartable接口。在构建容器时,组件将被激活,并调用IStartable...
阅读(19) 评论(0)

Autofac官方文档(十五)【生命周期事件】

Autofac公开了在实例生命周期的不同阶段可能被挂钩的事件。 这些在组件注册期间被订阅(或者通过附加到IComponentRegistration接口。) OnActivating OnActivated OnReleaseOnActivatingOnActivating事件在使用组件之前引发。 在这里你可以: 将实例切换为另一个或将其包装在代理中 做属性注入或方法注入 执行...
阅读(26) 评论(0)

Autofac官方文档(十四)【销毁】

在工作单元内获得的资源(数据库连接,事务,认证会话,文件句柄等)应在工作完成时销毁。 .NET提供了IDisposable接口来帮助销毁这个更确定的概念。一些IoC容器需要通过像ReleaseInstance()这样的方法明确地告诉销毁特定的实例。 这使得很难保证使用正确的销毁语义。 从不可销毁部件切换到可销毁部件可能意味着修改客户端代码。 客户端代码在使用共享实例时可能会忽略销毁,但切换到非共享实...
阅读(19) 评论(0)

Autofac官方文档(十三)【捕获依赖】

捕获依赖当一个要生存很短时间的组件被一个长期存在的组件持有时,就会发生“captive dependency”。 Mark Seemann的这篇博客文章在解释这个概念方面做得很好。Autofac不一定会阻止你创建捕获依赖关系。由于捕获的设置方式,您可能会发现解决方案异常的时候,但您并不总是如此。停止捕获依赖是开发者的责任。一般规则避免捕获依赖的一般规则:消费组件的生命周期应该小于或等于所消费的服务的...
阅读(58) 评论(0)

C# Directory.GetFiles()获取多个类型格式的文件

第一种方式System.IO.Directory.GetFiles()获取多个类型格式的文件 System.IO.Directory.GetFiles("c:\","(*.exe|*.txt)"); 第二种方式var files = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories) .Where(s => s.End...
阅读(81) 评论(0)

分布式锁的三种实现方式

在进行大型网站技术架构设计以及业务实现的过程中,多少都会遇到需要使用分布式锁的情况。那么问题也就接踵而至。分布式锁zk和memcached以及redis三者都能实现,同样是分布式锁,三者的区别何在?各自适用什么场景?Zookeeper1、实现原理: 基于zookeeper瞬时有序节点实现的分布式锁,其主要逻辑如下(该图来自于IBM网站)。大致思想即为:每个客户端对某个功能加锁时,在zookeeper...
阅读(200) 评论(0)

基于zookeeper实现分布式锁

一、分布式锁介绍 分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。 二、架构介绍 在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图 三、分布式锁获取思路1.获取分布式锁的总体思路在获取分布式锁的时候在locker节点下创建临时顺序节点,释放锁的时候删除该临时节点。客户端调用createNode方法在locker...
阅读(111) 评论(0)

基于zookeeper简单实现分布式锁

这里利用zookeeper的EPHEMERAL_SEQUENTIAL类型节点及watcher机制,来简单实现分布式锁。 主要思想: 1、开启10个线程,在disLocks节点下各自创建名为sub的EPHEMERAL_SEQUENTIAL节点; 2、获取disLocks节点下所有子节点,排序,如果自己的节点编号最小,则获取锁; 3、否则watch排在自己前面的节点,监听到其删除后,进入第2步(...
阅读(36) 评论(0)

ZookeeperClient(基于ZooKeeperNetEx再次封装)

概述ZooKeeper本质上是一个分布式的小文件存储系统。原本是Apache Hadoop的一个组件,现在被拆分为一个Hadoop的独立子项目。Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控...
阅读(48) 评论(0)

Autofac官方文档(十二)【实例范围】

实例范围决定了如何在同一服务的请求之间共享实例。 请注意,您应该熟悉生命周期范围的概念,以更好地理解这里发生的事情。当对一个服务进行请求时,Autofac可以返回一个实例(单个实例作用域),一个新实例(每个依赖作用域)或单个实例带某种上下文。 一个线程或一个HTTP请求(每个生命周期范围)。这适用于从显式Resolve()调用返回的实例以及容器内部创建的实例,以满足另一个组件的依赖关系。 注意...
阅读(63) 评论(0)

Java随机数生产算法

java提供了Math.random()函数,返回一个double类型的随机数,也有util包里的Random类,可以生成double,int,float,long,bytes等随机数。但有些业务需求,往往需要对这些方法做一下封装。比如用固定因子生成32位的3DES算法key值。下面提供一些封装的方法:package test;import java.util.Random;public class...
阅读(34) 评论(0)

3DES加密算法

在日常设计及开发中,为确保数据传输和数据存储的安全,可通过特定的算法,将数据明文加密成复杂的密文。目前主流加密手段大致可分为单向加密和双向加密。 单向加密:通过对数据进行摘要计算生成密文,密文不可逆推还原。算法代表:Base64,MD5,SHA; 双向加密:与单向加密相反,可以把密文逆推还原成明文,双向加密又分为对称加密和非对称加密。 对称加密:指数据使用者必须拥有相同的密钥才可以进行加密解密,就...
阅读(35) 评论(0)

JAVA和C# 3DES加密解密

最近 一个项目.net 要调用Java的WEB SERVICE,数据采用3DES加密,涉及到两种语言3DES一致性的问题, 下面分享一下, 这里的KEY采用Base64编码,便用分发,因为Java的Byte范围为-128至127,c#的Byte范围是0-255 核心是确定Mode和Padding,关于这两个的意思可以搜索3DES算法相关文章 一个是C#采用CBC Mode,PKCS7 Padd...
阅读(89) 评论(0)

Autofac官方文档(十一)【使用生命周期范围】

创建一个新的生命周期范围您可以通过在任何现有生命周期作用域上从根容器开始调用BeginLifetimeScope()方法来创建生命周期作用域。生命周期作用域是可销毁的,他们跟踪组件的处置,所以确保你总是调用“Dispose()”或者把它们包装在“using”语句中。using(var scope = container.BeginLifetimeScope()) { //从作为根容器子项的作用域...
阅读(32) 评论(0)

Autofac官方文档(十)【控制作用域和生命周期】

Nick Blumhardt的Autofac终身入门书是开始学习Autofac生命周期的好地方。然而,还有很多需要消化的东西,还有很多混杂的概念,所以我们将在这里补充这篇文章。您可能会从注册主题中想起将组件添加到实现服务的容器。然后您最终解析服务并使用这些服务实例来完成您的工作。服务的生命周期是服务实例在您的应用程序中生存的时间 - 从原始实例到处置。例如,如果你“新建”了一个实现了IDisposa...
阅读(32) 评论(0)
1203条 共61页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1075644次
    • 积分:16031
    • 等级:
    • 排名:第755名
    • 原创:313篇
    • 转载:770篇
    • 译文:120篇
    • 评论:274条
    博客专栏
    文章分类
    打赏
    如果你觉得我的文章对您有用,请随意打赏。 微信 支付宝