我喜欢遵守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/

10-15 05:54