可空引用类型允许 null 和 AllowNullAttribute

问题描述

public class Child : Parent
{
    [Parameter("Name",DefaultValue = "John")]
    public override string Name { get; set; }

    // More than 5 similar properties and methods ...
}

考虑启用可空引用类型的 C# 8 中的上述类。 Child 类位于应该由 3rd 方开发人员实现的插件中,开发人员将继承 Parent(框架的一部分)并可能添加一些特定的实现。

Name 属性将在通过激活完成的类的构造中填充。

目前我收到一个不可为空的属性未初始化警告,当我用 [AllowNull] 装饰名称时,警告消失了,正如预期的那样。

但是,作为框架一部分的属性 [Parameter] 实现保证将初始化此属性。 我尝试在 Parameterattribute 中继承 AllowNullAttributeAllowNullAttribute 是密封的(我什至不确定我是否能够成功继承 AllowNullAttribute,警告会消失)。

要求类的实现者除了用 AllowNull 还用 Parameter 装饰每个属性是荒谬的。此外,要求他们在类级别禁用此警告会干扰他们的内部实现。

如果属性[Parameter] 修饰,是否有关于隐藏此警告的建议?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)