标签: ioc-container

如何使用Artisan命令(PHP)在Laravel 5.2中创建RESTful资源控制器

我正在使用Laravel 5,我想知道如何使用Artisan命令(PHP)生成所有预定义方法的RESTful资源控制器.

当我运行时php artisan make:controller LessonsController,它会创建一个控制器,没有如下所示的方法:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class LessonsController extends Controller
{


}
Run Code Online (Sandbox Code Playgroud)

我想要创建的是一个完整的Laravel RESTful资源控制器,其中包含以下所有预定义方法:index(), create(), store(), show(), edit(), update()destroy().

我怎样才能做到这一点?

php ioc-container laravel-5.2

33
推荐指数
2
解决办法
4万
查看次数

验证:如何使用Ninject注入模型状态包装器?

我正在查看本教程http://asp-umb.neudesic.com/mvc/tutorials/validating-with-a-service-layer--cs,了解如何围绕包装器包装我的验证数据.

我想使用依赖注入.我正在使用ninject 2.0

namespace MvcApplication1.Models
{
    public interface IValidationDictionary
    {
        void AddError(string key, string errorMessage);
        bool IsValid { get; }
    }
}
Run Code Online (Sandbox Code Playgroud)

//包装

using System.Web.Mvc;

namespace MvcApplication1.Models
{
    public class ModelStateWrapper : IValidationDictionary
    {

        private ModelStateDictionary _modelState;

        public ModelStateWrapper(ModelStateDictionary modelState)
        {
            _modelState = modelState;
        }

        #region IValidationDictionary Members

        public void AddError(string key, string errorMessage)
        {
            _modelState.AddModelError(key, errorMessage);
        }

        public bool IsValid
        {
            get { return _modelState.IsValid; }
        }

        #endregion
    }
}
Run Code Online (Sandbox Code Playgroud)

//控制器

private IProductService _service;

public ProductController() 
{ …
Run Code Online (Sandbox Code Playgroud)

c# ninject ioc-container modelstate asp.net-mvc-2

32
推荐指数
1
解决办法
1万
查看次数

反对控制容器反转的论据

似乎每个人都在转向IoC容器.我曾试图"摸清"它一段时间,尽管我不想成为一个在高速公路上走错路的司机,但它仍然没有通过常识测试.让我解释一下,如果我的论点存在缺陷,请纠正/启发我:

我的理解:IoC容器应该在组合不同组件时让您的生活更轻松.这可以通过a)构造函数注入,b)setter注入和c)界面注入来完成.然后以编程方式或在容器读取的文件中"连接"它们.然后按名称召唤组件,然后在需要时手动投射.

我得不到的:

编辑 :( 更好的措辞) 为什么使用一个不是语言惯用的不透明容器,如果组件设计得当(使用IoC模式,松散耦合),你可以用更简洁的方式"连接"应用程序(imho) ?这个"托管代码"如何获得非平凡的功能?(我听过一些关于生命周期管理的提及,但我不一定能理解这比自己动手更好/更快.)

ORIGINAL:为什么要将所有组件存储在一个容器中,以与语言惯用的方式"连接起来",在按名称调用组件时使用相当于"goto labels"的东西,然后通过手动转换失去静态类型语言的许多安全优势,当你通过不执行它获得等效功能时,而是使用现代OO语言给出的所有很酷的抽象功能,例如编程到接口?我的意思是,实际上需要使用组件的部件必须知道它们在任何情况下都在使用它,并且在这里你将使用最自然,惯用的方式进行"连线" - 编程!

ioc-container inversion-of-control

31
推荐指数
2
解决办法
5506
查看次数

如何在没有全局静态服务(非服务定位器解决方案)的情况下实现IOC?

我们想使用Unity for IOC.我所看到的是有一个全局静态服务(我们称之为IOCService)的实现,它包含对Unity容器的引用,该容器注册所有接口/类组合,每个类都询问该对象:给我一个实现为Ithis或IThat.

我经常看到这种模式不好的响应,因为它导致从ALL类到IOCService的依赖(而不是Unity容器,因为它只在IOCService内部知道).

但我经常看不到的是:替代方式是什么?

米歇尔

编辑:发现全局静态服务被称为服务定位器,将其添加到标题中.

c# ioc-container inversion-of-control unity-container

30
推荐指数
3
解决办法
7174
查看次数

在Autofac中,如何更改在调用Build之后注册的实例?

所以我要说我有这个代码

var builder = new ContainerBuilder();
builder.RegisterInstance(new MyType());
var container = builder.Build();
Run Code Online (Sandbox Code Playgroud)

然后一段时间后,我想更改MyType所有未来调用的实例container.

.net dependency-injection ioc-container autofac

30
推荐指数
2
解决办法
1万
查看次数

如何用PARAMETER构造函数registerType?

如何使用类型没有NO PARAMETER构造函数的容器注册类型.

实际上我的构造函数接受一个字符串,我通常传入一个表示Path的字符串.

所以当我解决它时会自动创建新类型但是传入一个字符串?

dependency-injection ioc-container unity-container

30
推荐指数
2
解决办法
3万
查看次数

编写您自己的IOC容器

有人在C#写过自己的IOC容器吗?或者绝大多数人使用各种框架,如Spring.每个人的专业和意见是什么?

c# ioc-container inversion-of-control

29
推荐指数
3
解决办法
2万
查看次数

适用于Java的轻量级ioc-Container?

来自.NET,我已经习惯了Ninject,这是一个简单的小型ioc容器.Java有什么简单轻量的东西吗?

越简越好!

java dependency-injection ioc-container

29
推荐指数
4
解决办法
2万
查看次数

IOC - 具有静态帮助方法的util类是否应该与IOC连接?

只是试着继续关注IOC原则.

Q1:静态方法 - 是否应将带有静态辅助方法的util类与IOC连接?

例如,如果我有一个带有许多静态方法的HttpUtils类,我应该尝试通过IOC将它传递给其他业务逻辑类吗?

关注这个问题可能是:

Q2:Singletons - 通过Logger.getInstance()类型调用,通常可以访问它的内容.您是否通常将其保留原样,并且不使用IOC将记录器注入需要它的业务类?

问题3:静态类 - 我还没有真正使用过这个概念,但如果你转向基于IOC的方法,那么你是否有任何指导方针可以解决这个问题.

提前致谢.

static ninject instance ioc-container inversion-of-control

27
推荐指数
2
解决办法
6715
查看次数

IoC Factory:接口与代表的优缺点

在任何需要运行时值来构造特定依赖项的地方,Abstract Factory就是解决方案.

我的问题是:为什么很多来源都赞成FactoryInterface而不是FactoryDe​​legate来实现这种模式?两种解决方案的优缺点是什么?

这是一个了解我的意思的例子

如果您的服务需要具有特定上下文的存储库,则服务构造函数需要工厂来创建或访问其存储库.

对此的常见解决方案是创建这样的RepositoryFactoryInterface.

public IRepositoryFactory {
    IRepository Create(ContextInformation context);
}

public class MyService {
    private IRepositoryFactory repositoryFactory;
    public MyService(IRepositoryFactory repositoryFactory)
    {
        this.repositoryFactory = repositoryFactory:
    }

    public void DoSomeService()
    {
        ContextInformation context = ....;

        IRepository repository = this.repositoryFactory.Create(context);

        repository.Load(...);
        ...
        repository.Save(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

您还需要以某种方式实现IRepositoryFactory接口

public MyEf4RepositoryFactory : IRepositoryFactory
{
    IRepository Create(ContextInformation context)
    {
        return new MyEf4Repository(context);
    }
}
Run Code Online (Sandbox Code Playgroud)

...并在应用程序中使用它

public void main()
{
    IRepositoryFactory repoFactory = new MyEf4RepositoryFactory();
    IService service = new MyService(repoFactory); 

    service.DoSomeService();
}
Run Code Online (Sandbox Code Playgroud)

-----主流解决方案结束------ …

.net c# design-patterns dependency-injection ioc-container

27
推荐指数
2
解决办法
3817
查看次数