0

随着我的解决方案中的命名空间越来越多,文件顶部的 using 语句列表越来越长。在我的单元测试中尤其如此,对于每个可能被调用的组件,我需要包括接口的使用、IoC 容器和具体类型。

在我的集成测试文件中有超过 17 行的使用,它变得非常混乱。有谁知道是否有一种方法可以使用语句为我的基础定义宏?还有其他解决方案吗?

4

10 回答 10

6

我知道我不应该大声说出来,但是,也许重新考虑你的设计。

1 个文件中的 17 个使用 = 很多耦合(在命名空间级别)。

于 2008-09-15T12:08:49.170 回答
4

有些人喜欢将用途隐藏在#region. 否则,我认为你不走运。除非您想将名称空间放在所有引用对象上。

于 2008-09-15T11:44:04.033 回答
2

我自己受不了Resharper。但我也不能忍受凌乱的使用语句。我使用 VS 的Power Commands插件,它有一个方便的“删除和排序”使用语句命令(以及其他好东西)。

于 2008-09-15T12:19:39.830 回答
2

这里有四个可能的问题;

您代码中的命名空间将您的类划分得太细了。例如,如果您有;

using MyCompany.Drawing.Vector.Points;
using MyCompany.Drawing.Vector.Shapes;
using MyCompany.Drawing.Vector.Transformations;

考虑将它们折叠到单个MyCompany.Drawing.Vector命名空间。您可能不会通过划分太多来获得收益。Visual Studio Code Analysis/FxCop 对此有一个规则,检查命名空间中的类数量。太少了,它会警告你。

您将太多测试放入同一个班级。如果您在同一个类中引用System.DataSystem.DrawingSystem.IO,请考虑编写更多原子测试——一些访问数据库,一些绘制图像,还有一些访问文件系统。然后将每种类型划分为三个测试类。

你正在编写做太多的测试。如果你引用了很多命名空间,你的测试可能将太多的特性耦合在一起。这种耦合通常是有问题的,所以试着把大的、范围广泛的功能分解成更小的部分,并在单独的文件中测试它们。

许多是多余的。它们都是用过的,还是只是从其他文件中复制粘贴的。右键单击代码编辑器并从“组织使用”选项中选择以删除未使用的语句。

于 2008-09-15T12:45:20.737 回答
1

有谁知道是否有一种方法可以使用语句为我的基础定义宏?

您的意思是您经常使用的命名空间会自动添加到每个新类中吗?如果是,Resharper 也可以这样做。此外,它具有将使用放在代码清理区域的功能。Resharper 可能是要走的路(根据我自己的经验,你不会后悔的)。

于 2008-09-15T11:59:23.733 回答
1

VS2008 添加了一个“组织使用”上下文菜单,它有一个排序、删除和“删除和排序”选项,可以为每个文件执行您想要的操作。Visual Studio Power Commands 加载项在解决方案资源管理器中为项目和解决方案添加了一个上下文菜单,分别是项目中所有文件和解决方案中所有项目的“删除和排序”。

于 2008-09-15T12:24:18.087 回答
1

如果要更改创建新文件时完成的默认 using 语句,请查看 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033 目录。它包含一堆 zip 文件,您可以修改它们以更改代码文件的模板(显然向上移动目录结构以更改其他语言或其他类型的文件)。

请参阅此处了解更多信息。

于 2008-09-15T12:31:28.477 回答
1

使用别名可能会有所帮助。不确定它是否值得,但不是:

using System.Web.UI;
using System.Web.Mail;
using System.Web.Security;
... Control ...
... MailMessage ...
... Roles ... 

您可以使用:

using W = System.Web;
... W.UI.Control ...
... W.Mail.MailMessage ...
... W.Security.Rolse ...
于 2008-09-15T13:12:48.173 回答
0

Resharper - Visual Studio 的插件 - 具有从文件中删除未使用的 Using 的功能,但我不知道任何与您描述的完全一样的功能。

于 2008-09-15T11:43:26.517 回答
0

在 VS2008 中,您可以右键单击 CS 文件并选择“组织使用”。它也会为您去除未使用的使用并对其进行分类。除此之外,我只会使用#region。此外,CTRL++MO在设计时折叠所有区域功能等。我经常使用这个快捷方式!

于 2008-09-15T12:26:21.373 回答