C# 如何在Lamar中自动解析具体类型?
由于多种原因,以下文档不起作用: 首先,文档声明您可以使用默认构造函数创建一个新的容器,而默认构造函数不是true。其次,以下内容对我不起作用C# 如何在Lamar中自动解析具体类型?,c#,.net,lamar,C#,.net,Lamar,由于多种原因,以下文档不起作用: 首先,文档声明您可以使用默认构造函数创建一个新的容器,而默认构造函数不是true。其次,以下内容对我不起作用 var container = new Container(registry => { }); var testClass = container.GetInstance<TestClass>(); public class TestClass {} var容器=新容器(注册表=>{}); var testClass=contai
var container = new Container(registry => { });
var testClass = container.GetInstance<TestClass>();
public class TestClass {}
var容器=新容器(注册表=>{});
var testClass=container.GetInstance();
公共类TestClass{}
这是来自的错误和堆栈跟踪
var testClass = container.GetInstance<TestClass>();
var testClass=container.GetInstance();
Lamar.IoC.LamarMissingRegistrationException:不存在netcore.tests.web.UnitTests.ExtensionMethods.IServiceCollectionExtensionsTests.When\u在应用\u AddTransientForAll\u rule.TestClass之后创建\u新的\u实例时\u
位于Lamar.IoC.Scope.GetInstance(类型serviceType)
在Lamar.IoC.Scope.GetInstanceT
在netcore.tests.web.UnitTests.ExtensionMethods.IServiceCollectionExtensionsTests.When\u在应用\u AddTransientForAll\u规则后创建\u新\u实例\u
如果您对如何获取自动解析的具体类型有任何建议,我们将不胜感激。基于,自该文档发布以来,情况发生了变化
尝试使用接受服务集合的构造函数
var services = new ServiceCollection();
var container = new Container(services);
var testClass = container.GetInstance<TestClass>();
var services=newservicecolection();
var容器=新容器(服务);
var testClass=container.GetInstance();
我把这件事做好了,整晚都在烦我:
using Lamar;
namespace ConsoleApp2
{
public class TestClass {}
class Program
{
static void Main(string[] args)
{
var container = new Container(_ => { });
var testClass = container.GetInstance<TestClass>();
}
}
}
使用Lamar;
名称空间控制台EApp2
{
公共类TestClass{}
班级计划
{
静态void Main(字符串[]参数)
{
var container=新容器(=>{});
var testClass=container.GetInstance();
}
}
}
这不起作用:
class Program
{
static void Main(string[] args)
{
var container = new Container(_ => { });
var testClass = container.GetInstance<TestClass>();
}
public class TestClass {}
}
类程序
{
静态void Main(字符串[]参数)
{
var container=新容器(=>{});
var testClass=container.GetInstance();
}
公共类TestClass{}
}
谢谢你的建议,但它仍然不起作用。@GaryBrunton只是为了测试一个理论,如果你先在集合中注册TestClass
,它会起作用吗?像这样注册它可以工作services.AddTransient()@GaryBrunton我将在源代码中挖掘,看看它是否仍然自动解析具体的类,但到目前为止,它看起来是一个不可能的。我开始认为(也许仍然是),我在这里做了一些完全错误的事情。我在源代码中发现一些测试似乎正在测试,但从未运行它们,也没有完全遵循它们。@mxmissle我为此创建了一个bug,该bug已关闭,因为它无法复制。如果你认为有问题的话,你可能会想继续跟进。从那以后我离开了拉马尔:我就是这么做的: