【c# – Asp.Net MVC 4.0或更高版本中依赖注入的最佳方法是什么?】教程文章相关的互联网学习教程文章

C#-有状态服务的依赖注入【代码】

我有一个Service Fabric状态服务,其中包含RunAsync循环和OWIN Web API侦听器.是否可以在StatefulService继承的类和API控制器中添加依赖项注入?我真的只能得到其中一个. 如果将容器逻辑放在Startup.cs中,则可以轻松获取Web API控制器的DI,但不能获取状态服务. 如果将容器逻辑放在Program.cs中,那么我可以将其用于有状态服务,但不能用于Web api. (实际上,这更像是服务定位器,但在这种情况下,我可以接受) Program.csprivate static v...

c#-依赖注入和MVVM中的单一职责原则

使用DI和构造函数注入时,有一个有用的指示符表明是否违反了SRP,因为构造函数的参数数量将增加到我们开始感到不安的数量.通过将其重构为明智的量身定制的类并使用立面服务和类似方法来解决这一问题. 但是,对于MVVM尤其是视图模型,我很难应用这些规则.视图模型本质上负责提供命令,这些命令在被调用时会执行一些UI逻辑并调用业务层.我不想开始讨论在何处放置业务逻辑,因此我们同意将其放在单独的类中. 现在想象一个简单的场景:我们有...

c#-ASP.NET Core 2.0依赖注入默认实例【代码】

我正在使用ASP.NET Core 2.0和Microsoft.Extensions.DependencyInjection.我有一些我不想指定其实现或不需要指定的类. 例如:public interface IMyService {void WriteSomething(); }public class MyService : IMyService {private readonly MyObject myObject;public MyService(MyObject myObject){this.myObject = myObject;}public void WriteSomething(){this.myObject.Write();} }public interface IOther {string GetName();...

c# – 依赖注入和特定的依赖实现【代码】

首先让我介绍一下没有依赖注入的实现(它会打破依赖倒置原则):public class MyValidator {private readonly IChecksumGenerator _checksumGenerator;public MyValidator(){_checksumGenerator = new MyChecksumGenerator();}... }要使此代码可测试,请注入IChecksumGenerator:public class MyValidator {private readonly IChecksumGenerator _checksumGenerator;public MyValidator(IChecksumGenerator checksumGenerator){_check...

c# – Asp.Net MVC 4.0或更高版本中依赖注入的最佳方法是什么?【代码】

任何人都可以解释我何时以及为什么要使用依赖注入? 哪个是DI的最佳方法? 当我搜索并发现许多框架时,其中一些如下: – http://www.hanselman.com/blog/ListOf-NETDependencyInjectionContainersIOC.aspx 但我很困惑哪一个是最好的. 以及IOC和DI有什么区别? 谁在这里,谁可以帮助我? 提前致谢 .解决方法:依赖注入 OOP中的对象通常依赖于其他对象.也就是说,类会引用其他类,因为它们需要使用它们来完成它们的工作. 例如,假设我们有...

c# – 依赖注入/ SOLID忧虑【代码】

我有一个用C#编写的Web API应用程序.我正在努力确保设计符合SOLID原则.因此我使用Unity将依赖项注入我的控制器.但是我希望将控制器执行的操作从控制器本身中取出,因此它们实际上只是在其他(通常是静态的)对象上调用方法.例如:public class MyController : ApiController {private readonly ISomeCrossCuttingInterface _instance;private readonly ILog _log;public MyController(ISomeCrossCuttingInterface someInterface, ILog...

c# – 依赖注入问题 – 如何清理我的实现?【代码】

我正在使用依赖注入来模拟类,以便对依赖于它们的其他类进行单元测试:class Foo : IFoo {// production code }class MockFoo : IFoo {// mock so other classes that depend on Foo can be unit tested }class Bar {public DoSomething(){var barValue = 20;// use dependency injection to get Foo instance.DependencyInjection.Instance.Foo.ExampleMethod(barValue);} }但是,设置我的依赖注入类变得笨拙,迷宫和复杂:public cl...

c# – 在依赖注入中检查null的更好方法【代码】

通过构造函数使用依赖项注入时,我总是需要在将实例传递给内部属性之前检查空值.例如public UserManager(User user, IStateManager stateManager) {if(user == null) throw new arguementexception("user");if(statemanager == null) throw new arguementexception("stateManager");_user = user;_stateManager = statemanager; } 在每个控制器/类上重复这种模式似乎是重复的.有没有更好的方法来处理这个?顺便说一句不同的控制器将...

c# – Dotnet核心依赖注入参数【代码】

参见英文答案 > Dependency injection, inject with parameters 1个假设我有班级public class Entity : IEntity {public Entity(IDependency dep, string url){//...} }public class Dependency : IDependency {//... }现在当我想使用依赖注入时,我可以做类似的事情:IServiceCollection serviceCollection = new ServiceCollection(); serviceCollection.AddScoped<IDependency, Dependency>(...

c# – 依赖注入(DI)依赖于接口吗?【代码】

对大多数人来说这似乎是显而易见的,但我只是想确认依赖注入(DI)依赖于接口的使用. 更具体地说,对于在其构造函数中具有某个接口作为参数的类或者定义为属性(也称为Setter)的某个接口的情况,DI框架可以移交具体类的实例以满足需要该类中的接口. (如果这个描述不清楚,请道歉.我无法正确描述这一点,因为术语/概念对我来说仍然有点新鲜.) 我问的原因是我目前有一个具有各种依赖性的类.不是对象依赖,而是URL.这个类看起来像这个[C#]:usi...

c# – 如何使用.NET Core依赖注入在运行时解析服务并注入其他构造函数参数?【代码】

我有一个用例,我想使用.NET Core依赖注入创建存储库实例,但需要在运行时更改其中一个构造函数参数.确切地说,应该在运行时决定的参数是“数据库连接”,它将指向由调用者决定的一个或另一个数据库.顺便说一下,这种类型没有在DI容器中注册,但所有其他类型都是. 调用者将使用存储库工厂类型来创建具有所需连接的存储库. 它看起来像这样:class ARepository : IARepository {public ARepository(IService1 svc1, IService2 svc2, IConne...

c# – 使用依赖注入创建的viewmodel的Prism PopupWindowAction【代码】

我创建了一个“弹出窗口”窗口,根据Prism文档使用PopupWindowAction显示.视图加载得很好,但ViewModel不是.我能找到的所有示例都只是在视图后面的代码中创建了一个简单的ViewModel.我的ViewModel需要由unity构造,以便可以注入依赖项,但是由于视图是在xaml中声明的,所以这是被绕过的:<prism:InteractionRequestTrigger SourceObject="{Binding CustomViewRequest, Mode=OneWay}"><prism:PopupWindowAction><prism:PopupWindowAction...

c# – 具有依赖注入的Razor助手【代码】

是否有可能使Razor帮助器具有依赖注入服务?或者从Razor视图中调用一些服务? 谢谢解决方法:从.NET Core开始,是的,他们已经增加了对它的支持; https://docs.microsoft.com/en-us/aspnet/core/mvc/views/dependency-injection 例如,它允许你做类似的事情;@using System.Threading.Tasks @using ViewInjectSample.Model @using ViewInjectSample.Model.Services @model IEnumerable<ToDoItem> @inject StatisticsService StatsServic...

c# – 使用依赖注入管理HttpClient的多个实例【代码】

我正在为我的Web应用程序正在与之通信的每个不同的API创建一个HttpClient实例. 我想使用依赖注入SimpleInjector将HttpClient注入业务类.例如,我有ITwitterBusiness和IInstagramBusiness,他们都在他们的构造函数中接受HttpClient. 使用依赖注入注册多个相同类型的对象时,最佳做法是什么? 我很确定问题的一部分可能是我的设计,但这里有一些想法. 我的第一个想法是在DI注册中使用委托container.Register<ITwitterBusiness>(() => new...

C#依赖注入问题【代码】

我有3个班级:A,B和C. 所有这些类都实现了一个接口IMyInterface 我希望接口定义如下:internal IMyInterface<E> where E: class {E returnData(); }这样它就可以返回E类型的数据.类型“E”将是使用Entity Framework v4创建的POCO对象. 我在一个单独的课程中:public class MyClass() {IMyInterface<??> businessLogic;public setBusinessLogic(IMyInterface<E> myObject)where E : class{businessLogic = myObject;} }我试过把< ob...