C# 如何在Lamar中自动解析具体类型?

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

由于多种原因,以下文档不起作用:

首先,文档声明您可以使用默认构造函数创建一个新的容器,而默认构造函数不是true。其次,以下内容对我不起作用

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已关闭,因为它无法复制。如果你认为有问题的话,你可能会想继续跟进。从那以后我离开了拉马尔:我就是这么做的: