问题标签 [lamar]
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# - 如何映射两个不同的接口,以便一个接口值自动更改,另一个应该得到反映
我有核心,其中接口被声明为
实现也在同一层定义
然后我有另一个层 Repo 层,我在其中调用另一个名为 DataAccess 层的外部 nuget 包
我在其中宣布
所以在核心和数据访问这两个层我都定义了 IRequestProvider
拉马尔代码
作用域用于在整个请求中传递相同的实例
自动映射器已启用
我的期望是,当我从任何层更改 Core.IRequestProvider 中的某些内容时,它应该自动反映在 DataAccess.IRequestProvider 层中
目前我每次都调用 IDomainToRepoMappingRequestProvider.map() 来设置 DataAccess.IRequestProvider
我找到了一种解决方案,可以在更改某些内容而不调用 map() 时自动反映更改
lamar - 为什么 Lamar 不会在 ASP.NET Core 中注入 IServiceScopeFactory 类型?
我正在尝试在 aspnetcore2.2 项目中实现健康检查,该项目断言我的 Lamar 容器配置是有效的IContainer.AssertConfigurationIsValid(本质上它可以构造所有依赖项)。
一些服务(我无法控制)取决于Microsoft.Extensions.DependencyInjection.IServiceScopeFactory. Lamar 无法注入任何这些依赖项,当这些服务无法构建时,断言失败。
该堆栈是一个 ASP.NET Core 2.2 应用程序,使用 Lamar 作为默认 IoC 框架(通过推荐的.UseLamar()扩展方法),其他一切正常。
任何注射ServiceScopeFactory(任何地方)都失败了
为什么不能用 Lamar 注入这种特殊的依赖关系?
c# - 在 Azure 函数 V2 上注册 3rd 方 DI 框架(Lamar/Autofac)的正确方法
Azure Functions V2 现在支持.net 依赖注入
为了实现这一点,您需要执行以下代码:
我想将默认容器从 .net 更改为“Lamar”DI 框架。
但我无法将 IFunctionsHostBuilder 更改为使用“UseLamar()”扩展名。因为这扩展了 IWebHostBuilder。我能够拦截天蓝色函数初始化的唯一方法是使用配置 IFunctionsHostBuilder 的FunctionsStartup或配置 IWebJobsBuilder 的IWebJobsStartup ,但我在 Lamar 上找不到此类构建的扩展。
我试图检查现有的扩展来创建类似的代码,但没有工作,因为可能我需要创建更多的东西:
lamar - 使用 Lamar 引导 C# 服务时如何调试和查找错误“NullReferenceException”的来源?
我们最近移植到 .NetCore 3.0 的项目中有一些服务。此外,由于 StructureMap 即将停用,我们删除了所有引用并正在迁移到 Lamar,因为它是迁移速度最快的。引导时,其中一项服务会抛出“System.NullReferenceException:'对象引用未设置为对象的实例”。当然,我重写了 Lamar 的注册表类。我在 Lamar 中找不到任何有用的诊断方法来找到错误的根源。请让我知道是否有人可以指导我如何捕获错误源,因为现在调用堆栈仅提供 Bootstrap init 调用作为错误源。我们在程序集名称中查找具有特定字符串的所有程序集,例如:“项目名称”
.net - 我们能否在 .NET Core 3 中使用 Lamar 解决使用其他接口实现的接口实现?
我正在使用 .NET Core 3.0 并具有以下类
在我的Startup.cs中,我将服务注册如下:
这似乎无法正确解决,因为我收到以下错误:
Lamar.IoC.LamarException:无法构建“IDataProvider”的已注册实例 dataProvider:检测到双向依赖项:
我在 Lamar 中是否缺少能够在 .NET Core 3 中执行此操作的注册件?
c# - 带有 ServiceRegistry 的 Lamar AddInstances
我有一个用 Lamar 设置的 dotnet 核心网站,我在 Startup.cs 中有以下方法
使用 For().AddInstances() 添加许多注册
但是, AddInstances() 不存在,我收到以下错误
“ServiceRegistry.InstanceExpression”不包含“AddInstances”的定义,并且找不到接受“ServiceRegistry.InstanceExpression”类型的第一个参数的可访问扩展方法“AddInstances”(您是否缺少 using 指令或程序集引用?)
这是在另一个命名空间中吗?根据示例,它是否仅存在于 StructureMap Registry 对象中,如果是,我如何从注入的 ServiceRegistry 中获取它?
c# - 出现错误:“WebHostBuilder”不包含“UseLamar”的定义
我看到有对 ASP.NET Core 3.0 的支持,但是 3.1 呢?我试过没有运气。不确定我是在做一些愚蠢的事情还是不受支持?
我已经安装了最新的 Nuget 包:
- 拉马尔 4.0.0
- Lamar.Microsoft.DependencyInjection 4.0.2
我正在使用:
该文件包括using Lamar.Microsoft.DependencyInjection;在顶部。
但出现错误:“WebHostBuilder”不包含“UseLamar”的定义。
c# - StructureMap -> Lamar .NET Core 3.1 服务创建不起作用
我正在尝试在最新的 dotnet 核心版本 (3.1) 上从 StructureMap 迁移到 Lamar (4.1.0)
这个项目在切换到 Lamar 之前就已经工作了,但是发生了很大的变化,我有点失落了。
问题?
扫描发生后,如何使用已扫描对象的构造函数创建对象的实例。我知道 StructureMap 有点不同,但是这段代码以前有效。
下面的代码:
Startup.cs(尝试新的 Lamar)
Startup.cs(旧版本)
New Lamar (4.1) 不再允许我在没有参数的情况下创建
尝试了所有的实例化,但它们没有工作......所以我在这里
程序.cs
c# - 无法让 Lamar (IOC) 解决 .NET Core 3.1 中的 API 控制器依赖关系
尝试使用 Lamar 调用下面的控制器以在运行时解决依赖关系时出现错误。
我已经尝试过.AddControllersAsServices(),但仍然得到相同的结果。
使用
- ASP.NET 核心:3.1
- 拉马尔
Container.GetInstance<IDataAccess>()在监视窗口内工作,但不会在运行时解析
Container.WhatDoIHave()也表明存在依赖关系
问题?
我在 Lamar 配置中缺少什么来解析控制器?
启动.cs
程序.cs
处理请求时发生未处理的异常。
LamarException:无法构建'Test3._1.Controllers.WeatherForecastController'的注册实例weatherForecastController:无法填充任何公共构造函数的依赖关系可用构造函数:new WeatherForecastController(IDataAccess dataAccess,
ILogger<Test3._1.Controllers.WeatherForecastController>logger)* IDataAccess未在此容器中注册,不能任何缺失的家庭政策自动发现
c# - 如何在 Lamar 中自动解析具体类型?
以下文档因多种原因无法正常工作:
https://jasperfx.github.io/lamar/documentation/ioc/resolving/requesting-a-concrete-type/
首先,文档说明您可以使用不正确的默认构造函数新建一个 Container。其次,以下内容对我不起作用。
这是来自的错误和堆栈跟踪
Lamar.IoC.LamarMissingRegistrationException:不存在或可以为 netcore.tests.web.UnitTests.ExtensionMethods.IServiceCollectionExtensionsTests.When_creating_a_new_instance_after_applying_the_AddTransientForAll_rule.TestClass 在 Lamar.IoC.Scope.GetInstance(Type serviceType) 在 Lamar.IoC.Scope.GetInstanceT 派生服务注册在 netcore.tests.web.UnitTests.ExtensionMethods.IServiceCollectionExtensionsTests.When_creating_a_new_instance_after_applying_the_AddTransientForAll_rule..ctor()
任何有关如何让具体类型自动解析的建议将不胜感激。