SimpleInjector

IoC/DI库
授权协议 MIT
开发语言 C# .NET
所属分类 程序开发、 面向方面AOP/IoC
软件类型 开源软件
地区 不详
投 递 者 扈俊健
操作系统 Windows
开源组织
适用人群 未知
 软件概览

SimpleInjector是一个基于.NET3.5的、简单易用的IoC/DI库。

SimpleInjector完全支持基于代码配置,对不太熟悉IoC/DI框架的开发人员是一种不错的选择。

使用

 

public class UserController : Controller
{
    private readonly IUserRepository repository;
    private readonly ILogger logger;

    // Use constructor injection for the dependencies
    public UserService(IUserRepository rep, ILogger logger)
    {
        this.repository = rep;
        this.logger = logger;
    }

    // implement UserController methods here.
}

配置

 

 

protected void Application_Start(object sender, EventArgs e) 
{
    // 1. Create a new Simple Injector container
    var container = new Container();

    // 2. Configure the container (register)
    container.Register();

    container.RegisterSingle(() => new CompositeLogger(
        container.GetInstance(),
        container.GetInstance()
    ));

    // 3. Optionally verify the container's configuration.
    container.Verify();

    // 4. Register the container as MVC3 IDependencyResolver.
    DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
}

 

 

 

 

 

 相关资料
  • 问题内容: spring有两种两种类型的DI:设定器DI和结构DI。 基于构造函数的DI固定需要注入依赖项的顺序。基于Setter的DI不提供此功能。 基于Setter的DI帮助我们仅在需要时才注入依赖,而不是在构造时要求依赖。 我看不到任何其他显着差异,因为两种类型的Spring DI提供相同的功能-设置程序和构造函数DI在代码启动时都会注入依赖项。诚然,构造函数DI将通过构造函数完成此操作,而

  • KOtlin DEpendency INjection Kodein-DI is a very simple and yet very useful dependency retrieval container. it is very easy to use and configure. Kodein-DI works: On the JVM. On Android. On Javascript

  • Dependency injection 依赖注入是更广泛的控制反转技术的一种形式。它的作用是提高程序的模块化和可扩展性。 此次升级将 DI 独立,以便之后集成更多外围生态,开源地址:https://github.com/yoyofxteam/dependencyinjection 它分为(高/低)层API接口,下面展示下高层API: type A struct { Name string}fun

  • 3.3.1 延迟初始化Bean 延迟初始化也叫做惰性初始化,指不提前初始化Bean,而是只有在真正使用时才创建及初始化Bean。 配置方式很简单只需在<bean>标签上指定 “lazy-init” 属性值为“true”即可延迟初始化Bean。 Spring容器会在创建容器时提前初始化“singleton”作用域的Bean,“singleton”就是单例的意思即整个容器每个Bean只有一个实例,后边

  • 3.1.1 依赖和依赖注入 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系、接口与接口之间的继承关系; 实现:表示类对接口的实现; 依赖:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某个方法体内)才有关系。 关联:表示类与类或类与接口之间的依赖关系,

  • 我在ASP.NETWeb API应用程序中使用了一些类库,用于处理我所有的后端内容,例如对AzureSQLDatabase、Cosmos DB等多个数据库的CRUD操作。 我不想重新发明轮子,并能够在我在Visual Studio 2017中创建的新Azure函数中使用它们。我所有的存储库方法都使用一个接口。那么,我将如何在我的新Azure函数中实现依赖注入呢? 我没有看到对DI的任何支持,但我有

  • Dependency Injection 依赖注入 EasySwoole实现了简单版的IOC,使用 IOC 容器可以很方便的存储/获取资源,实现解耦。 使用依赖注入,最重要的一点好处就是有效的分离了对象和它所需要的外部资源,使得它们松散耦合,有利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。 在我们的日常开发中,创建对象的操作随处可见以至于对其十分熟悉的同时又感觉十分繁琐,每次需要对象

  • 在Angular 2中,每个应用程序不只有一个注入器,每个应用程序至少有一个注入器。 注入器被组织在与Angular 2的组件树平行的树中。 考虑下面的树,它是一个包含两个打开的聊天窗口和登录/注销小部件的聊天应用程序的模型。 Figure: Image of a Component Tree, and a DI Tree 在上图中,有一个根注入器,它通过的providers数组建立。有一个Log