我是StyleCop的忠实粉丝,它让我的生活更轻松。其他一些人都想到了很好的规则,我很乐意通过启用StyleCop来关注它们。最近我一直在搞乱Coded Ui的可扩展性,并且发现了这篇文章:
http://blogs.msdn.com/b/gautamg/archive/2010/01/05/2-hello-world-extension-for-coded-ui-test.aspx
下面的示例代码使StyleCop不满意,因为using
语句在命名空间之外。但是,我只能移动两个System*
包 - 第三个是定义一个程序集属性所必需的,我不能将assembly:
放在命名空间内。
是否有一种干净的方法来重新组织此代码?
using System;
using System.Diagnostics;
using Microsoft.VisualStudio.TestTools.UITest.Common;
using Microsoft.VisualStudio.TestTools.UITest.Extension;
// Attribute to denote that this assembly has UITest extensions.
[assembly: UITestExtensionPackageAttribute("HelloWorldPackage",
typeof(UITestHelloWorldPackage.HelloWorldPackage))]
namespace UITestHelloWorldPackage
{
internal class HelloWorldPackage : UITestExtensionPackage
{
public override object GetService(Type serviceType)
{
Trace.WriteLine("Hello, World");
return null;
}
....
答案 0 :(得分:5)
恕我直言,将命令放在命名空间内的规则是无用的,并且使代码难以阅读。
答案 1 :(得分:5)
您无法将[assembly: UITestExtensionPackageAttribute()]
属性移动到Properties \ AssemblyInfo.cs文件中吗?我猜你引用的文章中只有[assembly:]
属性,只是为了将示例保存在一个代码块中。
我同意Daniel的观点 - 在命名空间中使用using
语句会使您的代码难以阅读。
我建议将该属性移动到AssemblyInfo.cs文件中,并将您的使用保存在类文件的顶部。这似乎很标准。
希望这有帮助!