【发布时间】:2011-03-05 10:32:38
【问题描述】:
我喜欢遵守 StyleCop 的格式规则以使代码美观清晰,但我最近遇到了它的一个警告问题:
必须放置所有 using 指令 在命名空间内。
我的问题是我有 using 指令、一个程序集引用(用于模拟文件删除)和一个命名空间来处理我的一个测试类:
using System;
using System.IO;
using Microsoft.Moles.Framework;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[assembly: MoledType(typeof(System.IO.File))]
namespace MyNamespace
{
//Some Code
}
以上允许测试正常运行 - 但 StyleCop 抱怨 using 指令不在命名空间内。
将 usings 放在命名空间内会出现无法识别“MoledType”的错误。
将 usings 和程序集引用都放在命名空间内会产生错误
'assembly' 不是有效属性 此声明的位置。有效的 为此的属性位置 声明是“类型”。所有属性 在此块中将被忽略。
似乎我已经尝试了所有可能的布局,但无济于事 - 要么解决方案无法构建,要么模拟不起作用,要么 StyleCop 抱怨!
有没有人知道如何安排这些,让一切都快乐?还是在这种情况下我将不得不忽略 StyleCop 警告?
【问题讨论】:
-
如果您为 MoledType 提供完全限定的名称,并且仅将 usings 移动到命名空间中,它仍然是 comaplain 吗?
-
是的,修复了它!在我提交了我自己的问题的答案后,我得到了这个评论哈哈!感谢 Leom,非常感谢 =)
标签: c# assemblies namespaces using stylecop