问题标签 [dependency-resolver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在没有 Unity.MVC 的情况下解决 Unity 依赖项
我有两个使用以下 Unity 逻辑的项目:
第一个项目是一个使用Unity.MVC4包的 Web 应用程序,因此有一个定制的 DependencyResolver 来完成一些工作 -这非常有效。
第二个是非 Web 应用程序,因此使用普通的Unity包实例,但在使用MyDbContext进行调用时出错。例外是
System.Data.Entity.Core.MetadataException:指定的架构无效。错误:EntityDataModel.MyProject.ssdl(2,2):错误 0152:实体框架提供程序类型 'System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer,版本 = 6.0.0.0,文化 = 中性,PublicKeyToken = b77a5c561934e089'无法加载“System.Data.SqlClient”的 ADO.NET 提供程序。确保提供程序程序集可用于正在运行的应用程序。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260882。
我已将两个项目设置为调用位于单独项目中的相同服务,以尝试将问题的根源与第二个项目的 Unity 逻辑隔离开来。我还应该注意我使用 Entity Framework 6 作为 ORM。
我的问题是我需要什么 Unity 代码才能使第二个项目工作,或者是否可以添加一些 app.config 条目来引用 EF 程序集?
更新: 经过一些额外的工作,我注意到如果我引用 DbContext 程序集:
- 实体框架
- EntityFramework.SqlServer
在第二个项目中,问题消失了。我想避免引用这些程序集,因为我的客户项目不应该对 ORM 有任何了解。
我也尝试过更新连接字符串,因此我手动指定了 ORM 项目的程序集(我的 EDMX 文件所在的位置),如StackOverflow 问题中所述,但这没有任何区别。
元数据=res://nameOfDll/Model.csdl|res://nameOfDll/Model.ssdl|res://nameOfDll/Model.msl
asp.net-mvc-4 - Autofac依赖解析器在解析服务时传递相同的参数值
我在 ASP .Net MVC 4 应用程序中使用 Autofac for IoC。
我无法弄清楚为什么依赖解析器在解析依赖项时为不同的参数传递相同的值。
这是我的注册方式:
这是我的解决方法IContext
:
这是我的AppContext
:
请看一下这个截图。即使contextToken
,hostUrl
和request.Url.Authority
具有不同的值,在构造函数中的AppContext
所有值都设置为 的值contextToken
。
asp.net-mvc-3 - 使用 MVC 3 和 DI 的多租户应用程序
我有一个 MVC 应用程序分为几个区域:
因此,我在文件夹中定义了一些基本功能,Controllers
然后在区域文件夹中继承和扩展了这些功能。通过这种方式,可以围绕特定于每个国家/地区、工作流程等的 UI 组件自定义 UI。
在使用 Autofac 时,我要做的就是将IComponentContext
up 传递给构造函数参数,这不是很好。问题包括:
- 当使用真正的 IoC 时,我需要注入 IXXXServices,所以我得到了一个特定于区域的类而不是 Autofac
IComponentContext
- 每个区域都与不同的数据库关联,但共享模式 - 因此使用相同的 EF 库,仅使用不同的连接字符串。
通过直接注入服务,设计肯定会更优雅——这就是我所追求的。但是解析器似乎不够灵活,无法在没有大规模破解的情况下解析控制器,这对于每个使用的控制器来说都变得相当大。以下是手动连接控制器的示例:
为了使连接正常工作,您需要将注册添加到 Autofac,因为我们需要在DeclinedOrderService
我的问题是(最后):
- 有没有办法按区域动态选择一组映射的 Autofac 注册,这将自动解析为新的控制器?
c# - Asp.net mvc 4 依赖解析器
我是 ASP.NET MVC 4 的新手。为了使用依赖注入框架,我在 ASP.NET MVC 4 项目中使用了自定义依赖解析器。
ASP.NET MVC 4 中依赖解析器的作用是什么?
java - 使用 Arquillian Shrinkwrap Resolver Maven 从 pom.xml 读取依赖项
我正在尝试使用 ShrinkWrap Dependency Resolver 将库添加到我的 ShrinkWrap 存档中,以将其部署到服务器以进行 Arquillian 测试。
我正在使用以下 pom.xml:
我的测试如下所示:
如果我不解决 itextpdf 依赖,它会给我一个 NoDefClass found 错误,到目前为止还可以。因此,它想从 pom 的依赖项中添加库。从 pom 中获取它很重要,因为测试在不同的机器上运行。
使用 ShrinkWrap Resolver 2.0.0 时出现的错误如下:
当我捕获所有异常时,还会抛出以下内容:
我能够在以下位置找到它的来源: https ://github.com/shrinkwrap/resolver/blob/master/api/src/main/java/org/jboss/shrinkwrap/resolver/api/ResolverSystemFactory.java
到目前为止,我不知道为什么会出现此错误,因为通过 Google 找到的所有来源都告诉我,系统正在运行。有任何想法吗?
asp.net-mvc-4 - 对 MVC 和 WebAPI 使用 ninjectdependecyResolver
我已经创建了 MVC 4 Web 应用程序,并决定在这个应用程序中使用 Web api。我正在为 MVC Web 应用程序使用 ninject 依赖解析器。现在我想为 web api 使用这个 ninject 依赖解析器。但是这里提出的问题 mvc IDependencyResolver 命名空间是:using System.Web.Mvc
而 web api IDependencyResolver 是using System.Web.Http.Dependencies
那么我该如何解决这个问题呢?
最后我想要这样的东西:
azure - 如何让 ASPNET WebAPI 与 Microsoft.Owin.Host.HttpListener 一起使用 IoC 容器在 Azure 辅助角色上工作?
当我在 Azure 辅助角色中安装了以下包时:
只要我不尝试注册 IoC 容器,我就可以让应用程序正常工作。
只要我把这行放在我的 Startup.cs 文件中:
我得到以下异常:
Microsoft.WindowsAzure.ServiceRuntime.dll 中出现“System.Reflection.TargetInvocationException”类型的未处理异常
如果我将完全相同的代码放在控制台应用程序中,它可以正常工作而不会引发异常。这是我的 WorkerRole.cs 类的全部内容:
她的就是我的 Startup.cs 课程的全部内容:
尝试将 Castle.Windsor 与以下软件包一起使用时,我遇到了同样的问题:
而这行代码:
谁能告诉我这里有什么问题?我怀疑这是 Azure 计算模拟器的问题,因为它可以在控制台应用程序中完美运行,但是我不知道如何进一步诊断它。
c# - Autofac - 无法创建请求生命周期范围,因为 HttpContext 不可用 - 由于异步代码?
简短的问题:与这个未回答的问题相同
长问题:
我刚刚将一些代码从使用 Autofac 的 MVC 4 + Web Api 解决方案移植到我的新解决方案中,该解决方案也使用 Autofac 但仅使用 Web Api 2(没有 MVC 5.1 项目,只是一个 Web api)。
在我之前的解决方案中,我有 MVC4 和 Web Api,所以我有 2 个 Bootstrapper.cs 文件,每个文件一个。我只复制了新项目的 Web Api 引导程序。
现在,我在新解决方案中有 2 个需要提取依赖项的其他项目。让我们假设我必须使用DependencyResolver.Current.GetService<T>()
它,尽管它是一种反模式。
起初,直到我将 MVC Dependency Resolver 设置为同一个容器,这才起作用:
奇怪的是,这样做只会在其中一个项目中修复它!情况如下:
例外情况是:无法创建请求生命周期范围,因为 HttpContext 不可用。
现在在我们开始指责工作流之前,只要知道我在另一个解决方案中这个精确的设置工作得很好,工作流能够很好地使用 DependencyResolver。所以我怀疑这与使用较新版本的 Autofac 以及工作流异步运行的事实有关(就像我链接到的关于异步代码的问题一样)
我尝试将所有注册码切换为使用InstancePerLifetimeScope()
,而不是InstancePerHttpRequest()
尝试创建一个范围:
但它并没有改变例外。进一步分解代码是确切的罪魁祸首:
真的需要克服这个花太多时间卡住的问题。将在 2 天内以赏金奖励现有答案