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

Mat*_*eld 7 c# xml-serialization

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

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

Jon*_*eet 14

你可以加

[Obsolete]
Run Code Online (Sandbox Code Playgroud)

方法.控制是否生成错误或警告的IsError属性ObsoleteAttribute,您也可以提供解释性消息.

  • @Matt ObsoleteAttribute的目标是:AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate不包括属性加速器的事件.答案是否定的,您不能将ObsoleteAttribute添加到属性访问器. (2认同)

Mar*_*ann 5

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