我正在使用this NetResource class将文件发送到网络驱动器,它看起来像这样:
[StructLayout(LayoutKind.Sequential)]
public class NetResource
{
public ResourceScope Scope;
public ResourceType ResourceType;
public ResourceDisplayType DisplayType;
public int Usage;
public string LocalName;
public string RemoteName;
public string Comment;
public string Provider;
}
现在,如StructLayout
属性所暗示的那样,这些字段的顺序必须保持不变。
但是,当某人运行重新共享清理时,重新共享决定移动字段,这将破坏代码。
有什么办法告诉重磨者不要搞砸它吗?我觉得如果我做不到,那么最终有人会破坏代码并且不知道在哪里看。
但是,我认为一个中等的解决方案是创建一个单元测试,可以检查布局是否符合预期。
编辑:我见过this answer,但是它已经过时了,并且需要更新共享工具设置。我也不能保证同事使用此共享工具设置。我正在寻找一种将其添加到代码中的方法,就像您可以// ReSharper disable once InconsistentNaming
答案 0 :(得分:2)
我在这里看到一些解决方案:
NoReorderAttribute
标记该类(有几种方法可以将它们添加到项目中)。然后,ReSharper将停止对标记的代码实体内的成员重新排序。 要确保您的同事在ReSharper中使用相同的设置,请将此更改保存到Solution team shared layer(“选项”对话框底部的Save To
)。然后,如果您的任何同事打开该解决方案,ReSharper将自动使用此层中的设置,而无需执行其他操作。