jjzjj

c# - DI Framework : how to avoid continually passing injected dependencies up the chain, 且未使用服务定位器(特别是使用 Ninject)

我需要更多帮助才能“了解”像Ninject这样的DI框架如何超越基础知识。以Ninject为例:classSamurai{privateIWeapon_weapon;[Inject]publicSamurai(IWeaponweapon){_weapon=weapon;}publicvoidAttack(stringtarget){_weapon.Hit(target);}}如果没有DI框架(即上面的[Inject]引用),引用类将类似于:classProgram{publicstaticvoidMain(){Samuraiwarrior1=newSamurai(newShuriken

c# - 重构大型项目的 DI

我从事一个大型平台项目,支持大约10种使用我们代码的产品。到目前为止,所有产品都使用了我们平台的全部功能:-从数据库中检索配置数据-远程文件系统访问-安全授权-基本逻辑(我们付费提供的东西)对于新产品,我们被要求在没有平台带来的基础架构的情况下支持较小的功能子集。我们的架构很旧(从2005年左右开始编码)但相当可靠。我们有信心可以在现有类(class)中使用DI来做到这一点,但估计需要5到70周的时间,具体取决于您与谁交谈。有很多文章告诉您如何进行DI,但我找不到任何文章告诉您如何以最有效的方式重构DI?是否有工具可以执行此操作,而不必通过30.000行代码并多次按下CTRL+R来提取

c# - ASP.NET Core 2 - 多个 Azure Redis 缓存服务 DI

在ASP.NETCore2中,我们可以像这样添加一个AzureRedis缓存:services.AddDistributedRedisCache(config=>{config.Configuration=Configuration.GetConnectionString("RedisCacheConnection");config.InstanceName="MYINSTANCE";});那么用法是这样的:privatereadonlyIDistributedCache_cache;publicMyController(IDistributedCachecache){_cache=c

c# - DI/IoC 容器性能基准比较?

我找到了一些2008年的基准测试结果,用于测试几个顶级.NETDI/IoC容器的性能here.但我一直无法找到任何更新的结果。是否有任何基准可以比较一些大型IoC容器(StructureMap、Unity、Ninject、Autofac、CaSTLeWindsor等)? 最佳答案 我不建议使用性能基准来选择IoC容器。还有很多很多更重要的因素,比如功能集、开发路线图和可维护性等。请注意,在最坏的情况下,您引用的基准测试在超过100万次调用时仅显示出3-4倍的速度差异。在“真实世界”场景中,DI/IoC用于连接依赖项,并且对整体应用程

c# - IoC/DI面对winforms等生成代码

当使用依赖注入(inject)(DI)和控制反转(IoC)时,对象通常会有一个构造函数,该构造函数接受对象正常运行所需的依赖集。例如,如果我有一个需要服务来填充组合框的表单,您可能会看到如下内容://myfilespublicinterfaceIDataService{IListGetData();}publicinterfaceIComboDataService{IListGetComboData();}publicpartialclassPopulatedForm:BaseForm{privateIDataServiceservice;publicPopulatedForm(IDa

c# - ASP.NET Core 2 - 身份 - 自定义角色的 DI 错误

我在我的Startup.cs中得到了这段代码:services.AddDbContext(options=>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));services.AddIdentity().AddEntityFrameworkStores().AddDefaultTokenProviders();在同一个文件中,我还将service.UseIdentity()替换为app.UseAuthentication();,这是MS在新版本的ASPCore2中推荐的.我的数据库

javascript - 为什么angular的DI内联注解中的函数是数组元素?

我有一个问题要问这里的angularjs人员。所以,我使用Angular已经有一段时间了。然而,每次当我写一个新的Controller或使用依赖注入(inject)的东西时,我发现自己写错了内联定义。someModule.controller('MyController',['dep1','dep2',function(dep1,dep2){...}]);我明白它是如何工作的,但为什么有棱Angular的人不决定采用更通用的方法?比如requirejs方式someModule.controller('MyController',['dep1','dep2'],function(dep1

Javascript IoC/DI 框架

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。对于像Java这样的强类型静态语言,IoC/DI框架/工具包对于解耦复杂系统非常重要,从而使子组件可进行单元测试并流畅地组合它们。我们大多数人都认为Javascript作为松散类型的动态语言已经在精神上提供了IoC/DI的主要好处,而有些人坚持认为应该有更高级别的抽象/实现。对于后者,Javascript领域中那些常见的IoC/DI实现是什么?

javascript - 具有 (ES6) 类和继承的 Angular.js DI

背景,我们应用程序中类/模块的当前实现是common.js和CoffeeScript类。我正在拼命寻找可以使用ES6或TypeScript的解决方案,但问题仍然存在。如何使用Angular-1.x通过类继承进行DI?给定代码://SuperService.jsclassSuperService{constructor($http,$q,$etc){//Implementationisnotimportant...}}export{SubService}//SubService.jsimport{SuperService}from'./SuperService';classSubServ

javascript - 带有 typescript 接口(interface)的 Aurelia DI

我已经阅读了AureliaDI的文档并查看了源代码,并想分享我正在努力实现的目标,这样如果我遗漏了一些明显的东西,我就会被拒绝。我看过样本here对于TSwithAurelia,但我看不出它是如何工作的,而且缺少文档。我想要的是:dataProvider.js(数据提供者接口(interface))exportinterfaceDataProvider{getData():number;}itemDisplayer1.js(一个将使用实现接口(interface)的注入(inject)类的类)import{inject}from'aurelia-framework';import{Da