我喜欢遵守StyleCop的格式设置规则,以使代码清晰美观,但是最近我的警告之一出现了问题:
我的问题是我使用指令,程序集引用(用于删除模拟文件)和命名空间来处理我的一个测试类:
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指令不在 namespace 中。
将usings放在命名空间中会产生错误,即无法识别“MoledType”。
将usings和Assembly引用都放在 namespace 中会产生错误
似乎我已经尝试了所有可用的布局,但无济于事-解决方案无法构建,模拟无法正常工作或StyleCop提示!
有谁知道一种解决这些问题的方法,以便让一切变得快乐?还是在这种情况下我将不得不忽略StyleCop警告?
最佳答案
两分钟后解决了!
我只需要在程序集引用中放入“MoledType”的完整路径-这意味着我可以使用内部的using指令将其保留在 namespace 之外,如下所示:
[assembly: Microsoft.Moles.Framework.MoledType(typeof(System.IO.File))]
namespace MyNamespace
{
using System;
using System.IO;
using Microsoft.Moles.Framework;
using Microsoft.VisualStudio.TestTools.UnitTesting;
// Some Code...
}
希望有人会发现这个有用!
关于c# - 使用伪指令,命名空间和程序集引用-所有这些都与StyleCop混为一谈!,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3069951/