在.NET 8中,可以使用ActivatorUtilities.CreateInstance方法来创建非空的泛型集合。下面是一个示例代码:
using System;
using System.Collections.Generic;
using Microsoft.Extensions.DependencyInjection;
public class Program
{
public static void Main()
{
var serviceProvider = new ServiceCollection()
.AddSingleton(typeof(List<>))
.BuildServiceProvider();
var list = (List)ActivatorUtilities.CreateInstance(serviceProvider, typeof(List));
list.Add(1);
list.Add(2);
list.Add(3);
foreach (var item in list)
{
Console.WriteLine(item);
}
}
}
在这个示例中,我们首先创建了一个ServiceProvider,并使用AddSingleton方法注册了一个List类型的泛型服务。
然后,我们使用ActivatorUtilities.CreateInstance方法来创建一个List
最后,我们使用foreach循环遍历并打印出List中的元素。
注意:在使用ActivatorUtilities.CreateInstance创建非空的泛型集合时,需要确保在注册服务时提供正确的泛型类型。