我有一些类,它们有几种我不想真正想要的方法,但只是因为XML Serializer需要它们。无论如何,如果从用户代码调用它们会产生编译时错误/警告吗?
我知道我可以实现IXmlSerializable,而且我也知道我可以将类分离成纯粹的数据存储类,但是,我不是在问我应该如何设计这样一个系统的问题,我只是询问是否有办法生成编译时错误/警告,如果它们被任何非XML序列化程序调用...
答案 0 :(得分:14)
答案 1 :(得分:5)
您可以使用ObsoleteAttribute修饰相关成员。它的意图有点不同,但从用户代码调用时会产生编译器警告(或错误)。
答案 2 :(得分:0)
您可以使用[EditorBrowsable]属性隐藏用户intellisense的方法,也可以使用[Browsable]属性从属性设计器隐藏。
我不建议使用[ObsoleteAttribute],因为它传达了实际上方法状态的不同含义。而是使用注释指示不应该从用户代码中使用该方法。
另请注意,有很多用户使用威胁警告错误编译代码,这使得他们无法编译有效代码,情况下。