清理代码时保留特定的“using”语句

Keep a specific "using" statement when cleaning up code

提问人:scott.smart 提问时间:11/2/2013 最后编辑:scott.smart 更新时间:11/2/2013 访问量:169

问:

我是键盘快捷键的忠实粉丝。我特别喜欢 Visual Studio。直到现在,我没有理由质疑这种命令的使用。我最近发现一个语句存在于几个文件中,但实际上根本没有在文件中使用。我让命令从我的视图中擦除它没有问题,直到我尝试更新服务引用并发现某些属性无法序列化。 将允许有问题的类以更新服务引用所需的任何魔法来反映。在将这一行重新添加到几个班级中,教几个我使用快捷方式来帮助保持代码干净的人,以及一般的健忘,我可以看到这一行在未来的某个时候被删除,并且有人想知道为什么事情不会再序列化了。Remove and Sort Usingsusingusing System.Runtime.Serialization;

是否有要附加到此语句的属性,可以防止自动格式化技术将其删除?

编辑

我在描述中的错误。无法更新服务引用,因为服务本身无法启动。尝试启动服务时,事件查看器中的错误指出,由于类的新属性不可序列化,无法启动服务。该类是第一个尝试序列化的类 - 修复或删除有问题的代码,下一个类将出现在下一个错误日志中。通过检查其他类,我发现那些不可序列化的类和一个可序列化的类之间的区别在于那些不能序列化的类缺少这一行:using System.Runtime.Serialization;

C# visual-studio-2012 代码清理 using 指令

评论

7赞 D Stanley 11/2/2013
我认为其他原因导致了您的问题 - 添加 using 语句不会神奇地添加任何功能 - 它只是允许您使用该命名空间中的类而无需键入命名空间。如果某些东西使用了它并且您删除了它,则代码将无法编译。
0赞 Tim S. 11/2/2013
(继续 D Stanley 所说的话......或者,如果它确实编译了,它将使用不同的类来做某事。除非 VS 中存在错误,否则不会发生这种情况,因为这意味着实际正在使用中。using
0赞 John Saunders 11/2/2013
找出在就位时引用的类。然后显式限定这些类。即,如果类被指定为“X”,则将其设为“”。然后删除 .using System.Runtime.SerializationSystem.Runtime.Serialization.Xusing System.Runtime.Serialization
0赞 scott.smart 11/2/2013
@JohnSaunders - 无。我可以删除该语句并将 dll 用于任何其他项目。如果没有其他更改,我还可以删除该语句并在服务中使用 dll。我可以删除该语句并在服务中使用 dll,但不再更新服务引用。
0赞 John Saunders 11/2/2013
你是什么意思,“没有”。如果删除更改了程序的含义(例如,能够序列化类,然后无法序列化类),则意味着类型发生了变化,从可以序列化的类型更改为无法序列化的类型。using

答: 暂无答案