我是C#的新手

我有一个测试类,其中的构造函数定义如下

public Test(
        ILogger<Test> log,
        ITelemetryClient telemetry
    )
    {
        this.log = log;
        this.telemetry = telemetry;
    }

现在,在另一个地方,我需要创建这个类的列表

 IEnumerable<Test?> test= new List<Test?>() {....}

现在,我如何在创建列表之前初始化这个类以设置这些值,或者如何将值传递给类构造函数?

推荐答案

因为您在创建测试类时注入了ILoggerItelementry.当您想要一个实例时,还需要注入它们. 您可以try 以下代码.
Test.cs

    public class Test
    {
        private readonly ILogger<Test> logger;

        public Test(ILogger<Test> logger)
        {
            this.logger = logger;
        }

        public string Name { get; set; }
    }
    public class ValuesController : ControllerBase
    {

        private readonly ILogger<Test> logger;

        public ValuesController( ILogger<Test> logger)
        { 
            this.logger = logger;
        }
        [HttpGet("test")]
        public void Method1()
        {
            var a = new List<Test>()
            {
                new Test(logger){Name="Tom"},
                new Test(logger){Name="Kite"}
            };
        }
    }

或者像这样

    public class ValuesController : ControllerBase
    {
        private readonly List<Test> tests;
        private readonly ILogger<Test> logger;

        public ValuesController(ILogger<Test> logger)
        {
            this.tests = new List<Test>()
            {
                new Test(logger){Name="Tom"},
                new Test(logger){Name="Kite"}
            };

            this.logger = logger;
        }
        [HttpGet("test")]
        public void Method1()
        {
            Console.Write(tests);
        }
    }

Csharp相关问答推荐

Blazor:计算值或保留为默认值

图形.DrawString奇怪异常的字距调整

错误401未授权ASP.NET Core.使用JWT创建身份验证/授权

在C#中,DirectoryEntry返回空AuditRules集合,即使审计规则确实存在

Nuget包Serilog.Sinks.AwsCloudwatch引发TypeLoadExceptions,因为父类型是密封的

为什么我的表单在绑定到对象时提交空值?

更改执行目录

如何将端点(或с匹配请求并判断其路径)添加到BCL?

如何向事件添加成员

正在try 从Blazor中的API读取JSON

如果是,我怎么才能让这个加75,如果不是,我怎么才能减go 100?

{ or ; expected error如何解决此问题

流畅的验证--如何为属性重用规则?

如何从SignalR获取连接客户端的域

使用C#代码和SQL SERVER中的相同证书签名会产生不同的结果

为什么Visual Studio 2022建议IDE0251将我的方法设置为只读?

Unity 3D-意外轴捕捉和未知力对脉冲react 行为的影响

根据运行时值获取泛型类型的字典

从列表中跳过和获取条目的优雅方式

更新实体框架上的被跟踪实体