C# 序列化和过时

C# 序列化和过时,c#,C#,可能重复: 过时阻止属性序列化,为什么MS会这样做?过时不一定意味着我不再需要它了。例如,我将一个属性标记为过时,因为我需要告诉其他程序员不要使用它,但我仍然需要对它进行序列化 有出路吗 关于您可以创建自己的自定义属性,并在属性构造函数中编写一条日志消息,使用反射记录调用方。不幸的是,编译时警告对此不起作用。上面的副本也谈到了如何解决这个问题。如果其他程序员不需要使用它,为什么会有它?@Babak:因为这是关于序列化的,所以数据持久性,很容易发生这样的情况:从某一天起,你决定不支持更多的API

可能重复:

过时阻止属性序列化,为什么MS会这样做?过时不一定意味着我不再需要它了。例如,我将一个属性标记为过时,因为我需要告诉其他程序员不要使用它,但我仍然需要对它进行序列化

有出路吗


关于

您可以创建自己的自定义属性,并在属性构造函数中编写一条日志消息,使用反射记录调用方。不幸的是,编译时警告对此不起作用。

上面的副本也谈到了如何解决这个问题。如果其他程序员不需要使用它,为什么会有它?@Babak:因为这是关于序列化的,所以数据持久性,很容易发生这样的情况:从某一天起,你决定不支持更多的API属性,但您必须保证新构建也使用保存在旧版本的客户机上的数据运行。我认为这是一个很常见的问题。是的,我有一个实体,我不想让用户直接访问我的一个字段,所以我把它标记为过时,但我担心同样的问题,因为我很久以前读过c#5或c#6。。。