|
1
14
VS2013之前 您可以使用:
这样它就不会出现在IntelliSense中。如果消费者仍然想使用它,他们可以,但它不会那么容易被发现。 Keith's point 不过,过度工程仍然存在。 自VS2013以来 此功能已被删除。如所述 https://github.com/dotnet/roslyn/issues/37478 这是“故意的”,显然不会再回来了。 |
|
2
22
如果一个类是
我猜你想强制代码访问,将属性的默认值传递给参数化构造函数。
基本上你是说这对
在某种程度上,我认为这是过度设计。 只需添加XML注释,详细说明需要初始化哪些属性(以及需要初始化什么)。
不使用
|
|
|
3
2
|
|
|
4
2
你可以建立自己的
在我看来,你真的不能强迫开发人员不使用这种方法,但你可以尽快发现有人违反了规则并加以修复。 |
|
5
1
实际上,我倾向于不同意所有主张使用
由于XML序列化的通用构造函数不应从应用程序中删除,因此我不会应用它,以防未来的维护开发人员不熟悉XML序列化的工作原理。 我实际上一直在使用 Keith's 只需注意构造函数用于XML文档中的序列化,以便它显示在Intellisense中。 |
|
|
6
0
现在你可以使用 代码分析器 为了满足这样的需求,这要归功于现代的Roslyn编译器。网。 您可以编写自己的代码分析器。以下是一些建议:
或者使用一些已经存在的——这是我根据自己的需求选择的方式:
这是Roslyn Analyzers的另一个不错的“主页”: Cybermaxs/出色的分析器:精心策划的列表。NET编译器平台(“Roslyn”)诊断分析器和代码修复。每个人都可以在这里做出贡献! https://github.com/Cybermaxs/awesome-analyzers |
|
|
7
0
我读了标题,立刻想到“过时的属性”。怎么样
|
|
|
8
0
将可序列化对象与域对象分离。 |
|
9
0
哇,这个问题也困扰着我。 您还需要NHibernate的默认构造函数,但我想强制人们不要使用C#3.0对象初始化器,这样类才能通过构造函数代码。 |
|
10
0
你要找的是
|
|
11
-1
由于过时的警告发生在编译时,并且序列化所需的反射发生在运行时,因此标记该方法过时不会破坏序列化,但会警告开发人员该方法不可用。 |
|
12
-1
|