C# 9.0 引入了仅 init 类属性功能,但在使用 Activator.CreateInstance 按类类型创建实例时无法使用它们。一个简单的例子:
class Person
{
public string Name { get; init; }
}
void Test()
{
Person person = (Person)Activator.CreateInstance(typeof(Person));
person.Name = "Bob"; // Doesn't work
}
Run Code Online (Sandbox Code Playgroud)
寻找除使用构造函数参数(太多)之外的解决方案。