C# 如何抑制所有过时属性用法的警告?

C# 如何抑制所有过时属性用法的警告?,c#,visual-studio,compiler-warnings,suppress-warnings,C#,Visual Studio,Compiler Warnings,Suppress Warnings,免责声明:我不是在问怎么做 背景 我有一处房产要标记为废弃 此属性是封装在NuGet中的解决方案的一部分,并由许多其他解决方案和分支使用,但没有适当的语义版本控制 如果出现任何错误,许多其他解决方案和分支将无法编译。因此,如果我将该属性标记为过时,将会出现警告,许多解决方案和分支机构将最终失败 我知道这些警告可以用 #杂注警告禁用612、618 int a=foo.getobsoletproperty; #pragma警告恢复612618 …但是在这些地方编辑getobsoletproper

免责声明:我不是在问怎么做


背景 我有一处房产要标记为废弃

此属性是封装在NuGet中的解决方案的一部分,并由许多其他解决方案和分支使用,但没有适当的语义版本控制

如果出现任何错误,许多其他解决方案和分支将无法编译。因此,如果我将该属性标记为过时,将会出现警告,许多解决方案和分支机构将最终失败

我知道这些警告可以用

#杂注警告禁用612、618
int a=foo.getobsoletproperty;
#pragma警告恢复612618
…但是在这些地方编辑
getobsoletproperty
的每个用法是不切实际的

底线: 是否有一种方法可以将属性标记为过时,但永远不会生成警告?
(是的,我知道这违反了将财产标记为过时的一般想法。)


我考虑过的一些替代方案并不完全是我想要的:

  • 使用XML注释
  • 使用
    EditorBrowsableAttribute
    ,这不起作用

好问题。“是的,我知道这违反了将财产标记为过时的一般想法”。。。这就是为什么我认为你的问题不会有一个好的答案。我认为,如果您库的用户将其编译器配置为将过时的警告视为错误,那么当使用过时的方法时,他们希望自己的构建失败(否则,他们为什么要这样配置VisualStudio?)。作为库开发人员,我鼓励您尊重这一选择,让他们的构建失败,而不是说“我知道得更好”。@Heinzi,您有一些优点。我写了一个问题,一半是希望答案是“你不能”。这些“客户”都在我们自己的公司内,他们的一些选择是出于政策,而不是实际的需要或要求。这意味着你现在有了一个很好的理由来修复坏了的政策。:-)我半开玩笑地说,因为我知道改变政策可能很难。我确实认为这是一个有趣的问题,我期待着你能得到任何答案。@YehudaShapira,我建议当你使用过时的属性时,你也可以在测试方法上标记[过时]。这种方法可以有效地消除警告。很好的问题。“是的,我知道这违反了将财产标记为过时的一般想法”。。。这就是为什么我认为你的问题不会有一个好的答案。我认为,如果您库的用户将其编译器配置为将过时的警告视为错误,那么当使用过时的方法时,他们希望自己的构建失败(否则,他们为什么要这样配置VisualStudio?)。作为库开发人员,我鼓励您尊重这一选择,让他们的构建失败,而不是说“我知道得更好”。@Heinzi,您有一些优点。我写了一个问题,一半是希望答案是“你不能”。这些“客户”都在我们自己的公司内,他们的一些选择是出于政策,而不是实际的需要或要求。这意味着你现在有了一个很好的理由来修复坏了的政策。:-)我半开玩笑地说,因为我知道改变政策可能很难。我确实认为这是一个有趣的问题,我期待着你能得到任何答案。@YehudaShapira,我建议当你使用过时的属性时,你也可以在测试方法上标记[过时]。这种方法可以有效地消除警告。