问题标签 [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.

0 投票
1 回答
87 浏览

c# - 如何映射两个不同的接口,以便一个接口值自动更改,另一个应该得到反映

我有核心,其中接口被声明为

实现也在同一层定义

然后我有另一个层 Repo 层,我在其中调用另一个名为 DataAccess 层的外部 nuget 包

我在其中宣布

所以在核心和数据访问这两个层我都定义了 IRequestProvider

拉马尔代码

作用域用于在整个请求中传递相同的实例

自动映射器已启用

我的期望是,当我从任何层更改 Core.IRequestProvider 中的某些内容时,它应该自动反映在 DataAccess.IRequestProvider 层中

目前我每次都调用 IDomainToRepoMappingRequestProvider.map() 来设置 DataAccess.IRequestProvider

我找到了一种解决方案,可以在更改某些内容而不调用 map() 时自动反映更改

0 投票
1 回答
397 浏览

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 注入这种特殊的依赖关系?

0 投票
2 回答
1390 浏览

c# - 在 Azure 函数 V2 上注册 3rd 方 DI 框架(Lamar/Autofac)的正确方法

Azure Functions V2 现在支持.net 依赖注入

为了实现这一点,您需要执行以下代码:

我想将默认容器从 .net 更改为“Lamar”DI 框架。

在他们的文档中,他们有一个 WebHost 的示例

但我无法将 IFunctionsHostBuilder 更改为使用“UseLamar()”扩展名。因为这扩展了 IWebHostBuilder。我能够拦截天蓝色函数初始化的唯一方法是使用配置 IFunctionsHostBuilder 的FunctionsStartup或配置 IWebJobsBuilder 的IWebJobsStartup 但我在 Lamar 上找不到此类构建的扩展。

我试图检查现有的扩展来创建类似的代码,但没有工作,因为可能我需要创建更多的东西:

0 投票
1 回答
111 浏览

lamar - 使用 Lamar 引导 C# 服务时如何调试和查找错误“NullReferenceException”的来源?

我们最近移植到 .NetCore 3.0 的项目中有一些服务。此外,由于 StructureMap 即将停用,我们删除了所有引用并正在迁移到 Lamar,因为它是迁移速度最快的。引导时,其中一项服务会抛出“System.NullReferenceException:'对象引用未设置为对象的实例”。当然,我重写了 Lamar 的注册表类。我在 Lamar 中找不到任何有用的诊断方法来找到错误的根源。请让我知道是否有人可以指导我如何捕获错误源,因为现在调用堆栈仅提供 Bootstrap init 调用作为错误源。我们在程序集名称中查找具有特定字符串的所有程序集,例如:“项目名称”

0 投票
1 回答
376 浏览

.net - 我们能否在 .NET Core 3 中使用 Lamar 解决使用其他接口实现的接口实现?

我正在使用 .NET Core 3.0 并具有以下类

在我的Startup.cs中,我将服务注册如下:

这似乎无法正确解决,因为我收到以下错误:

Lamar.IoC.LamarException:无法构建“IDataProvider”的已注册实例 dataProvider:检测到双向依赖项:

我在 Lamar 中是否缺少能够在 .NET Core 3 中执行此操作的注册件?

0 投票
1 回答
633 浏览

c# - 带有 ServiceRegistry 的 Lamar AddInstances

我有一个用 Lamar 设置的 dotnet 核心网站,我在 Startup.cs 中有以下方法

我想按照https://jasperfx.github.io/lamar/documentation/ioc/registration/registry-dsl/上的文档中所述使用 AddInstances()

使用 For().AddInstances() 添加许多注册

但是, AddInstances() 不存在,我收到以下错误

“ServiceRegistry.InstanceExpression”不包含“AddInstances”的定义,并且找不到接受“ServiceRegistry.InstanceExpression”类型的第一个参数的可访问扩展方法“AddInstances”(您是否缺少 using 指令或程序集引用?)

这是在另一个命名空间中吗?根据示例,它是否仅存在于 StructureMap Registry 对象中,如果是,我如何从注入的 ServiceRegistry 中获取它?

0 投票
1 回答
456 浏览

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”的定义。

0 投票
1 回答
1062 浏览

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

0 投票
1 回答
2251 浏览

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未在此容器中注册,不能任何缺失的家庭政策自动发现

0 投票
2 回答
226 浏览

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()

任何有关如何让具体类型自动解析的建议将不胜感激。