有没有办法阻止在编译时调用方法?

时间:2010-01-29 09:24:37

标签: c# xml-serialization

我有一些类,它们有几种我不想真正想要的方法,但只是因为XML Serializer需要它们。无论如何,如果从用户代码调用它们会产生编译时错误/警告吗?

我知道我可以实现IXmlSerializable,而且我也知道我可以将类分离成纯粹的数据存储类,但是,我不是在问我应该如何设计这样一个系统的问题,我只是询问是否有办法生成编译时错误/警告,如果它们被任何非XML序列化程序调用...

3 个答案:

答案 0 :(得分:14)

您可以添加

[Obsolete]

到方法。 IsErrorObsoleteAttribute属性控制是否生成错误或警告,您也可以提供解释性消息。

答案 1 :(得分:5)

您可以使用ObsoleteAttribute修饰相关成员。它的意图有点不同,但从用户代码调用时会产生编译器警告(或错误)。

答案 2 :(得分:0)

您可以使用[EditorBrowsable]属性隐藏用户intellisense的方法,也可以使用[Browsable]属性从属性设计器隐藏。

我不建议使用[ObsoleteAttribute],因为它传达了实际上方法状态的不同含义。而是使用注释指示不应该从用户代码中使用该方法。

另请注意,有很多用户使用威胁警告错误编译代码,这使得他们无法编译有效代码,情况下。