小编Spi*_*kee的帖子

Resharper Ctrl-T映射丢失

我似乎已经失去了Resharper Ctrl+ T映射以快速找到类,我尝试了这里描述的解决方案:

在安装了Resharper的Visual Studio中,键盘快捷键不活动

特别是接受的答案:

我首先尝试重置所有Visual Studio设置(工具>导入和导出设置>重置所有设置),然后转到Resharper>选项>键盘和菜单并重新应用键盘快捷方式.

还有这个:

设置为Resharper/Options/KeyBoard&Menus/None/Apply and Save

然后

Resharper/Options/KeyBoard&Menus /设置为Visual Studio /应用和保存

后者没有做任何事情(没有明显的积极结果),前者导致以下结果:

(Ctrl+ T)被按下了.等待和弦的第二把钥匙.

所以看起来VS正试图处理命令,而不是Resharper.

Alt+ Enter但是按预期工作,所以并不是Resharper完全脱离了.

有想法该怎么解决这个吗?

.net c# keyboard visual-studio

109
推荐指数
2
解决办法
3万
查看次数

$ {basedir}位于哪里,使用NLog?

除非我完全失踪了,我的印象中NLOG文档使用${basedir}在它的例子,没有解释什么是它的位置应该是.

在哪里可以找到列出所有可能选项的信息?

我定义了这个配置:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true">
  <targets>
    <target name="file" xsi:type="File"
                layout="${longdate} ${logger} ${message}"
                fileName="${basedir}/logs/${shortdate}.txt"
                keepFileOpen="false"
                encoding="iso-8859-2" />
  </targets>
  <rules>
    <logger name="*" minlevel="Debug" writeTo="file" />
  </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)

它的工作范围我可以告诉,但我还没有得到任何记录在哪里的线索.

.net c# vb.net logging nlog

26
推荐指数
2
解决办法
3万
查看次数

xunit.runner.visualstudio不适用于Visual Studio

我做了这样的nuget安装:

Install-Package xunit.runner.visualstudio -Version 2.2.0
Run Code Online (Sandbox Code Playgroud)

在我的测试项目上.

我有一个类似的测试:

public class When_Doing_Stuff_I_Want_To_Test
{

    [Fact]
    public void Can_Do_Stuff()
    {
        var result = DoStuff();

        result.ShouldNotBeNull();
        result.Success.ShouldBeTrue();
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然我已经做了很多VS重启,笔记本电脑重新启动,中间休息一天,VS 2017仍然无法发现我的测试:在此输入图像描述

我该怎么做才能解决这个问题并看看我的测试?

附录

我在4.6.1下工作,所以还没有Core.

关于相同主题的问题没有帮助:

所以有很多回合,没有一个帮助......

更新

我也无法使NUnit工作,也不会出现在测试资源管理器中.

更新2

我擦了我的项目并重新创建了这样的项目:

在此输入图像描述

然后我复制了我的原始代码并添加了所有必要的参考,没有区别.

c# unit-testing xunit visual-studio-2017

10
推荐指数
1
解决办法
3664
查看次数

包含TypeScript的解决方案使用VS2013保持永久加载

我在Visual Studio 2013上,当我打开包含TypeScript,充实或准系统的任何解决方案时,我得到了这个:

在此输入图像描述

(出于保密原因删除了名称)

很快就会导致这个(很可能是众所周知的)消息:

在此输入图像描述

最终,我只能通过杀死特定进程来关闭会话.

我已经要求VS2015,但这需要一个需要一段时间的批准程序.与此同时,我更愿意让VS2013正常工作,特别是因为VS2015没有得到解决它(它应该,但我不知道).

.net javascript c# visual-studio typescript

8
推荐指数
1
解决办法
129
查看次数

无法使用xUnit找到任何匹配的测试用例

虽然周五的测试工作正常但我现在得到这个错误:

在此输入图像描述

当我查看xUnit的github时,很明显这在xUnit代码上失败了:

在此输入图像描述

GetTestCases代码执行此操作:

在此输入图像描述

所以,正如我所读到的,正如我所料,测试程序集是为了匹配而读取的,由于某种原因突然失败,而在周五就好了.

我尝试了另一种解决方案,它的测试运行得很好.

我试过的

  • 清洁/重建解决方案
  • 手动删除bin obj文件夹
  • 卸载并安装包xunit(版本2.2.0)
  • 关闭/重新启动Visual Studio
  • 重启笔记本电脑

这些都没有帮助,也没有更新ReSharper.

发生了什么,有什么可以解决这个问题?

ReSharper可能会以某种方式干扰?

resharper xunit visual-studio-2015

8
推荐指数
1
解决办法
1952
查看次数

是否可以在 launchsettings.json 中将executablePath 指定为相对路径?

我正在查看一位前同事编写的项目,在文件中launchSettings.json(在“属性”下)他有以下内容:

{
  "profiles": {
    "ProjectName": {
      "commandName": "Executable",
      "executablePath": "C:\\code\\project\\\\src\\project.name\\bin\\Debug\\net471\\NServiceBus.Host.exe"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

executablePath是他的本地存储库所在的路径。但当然,其他团队成员不会有相同的本地路径。这很好,而不是我们应该强制执行的。

两个问题:

  • 为什么它在那里,它的目的是什么?
  • 这可以是相对路径吗?->是的,可以

->“..\net471\NServiceBus.Host.exe”

.net c# nservicebus

7
推荐指数
2
解决办法
3508
查看次数

源文件正确,使用system.drawing打印将实际打印移动到右侧和底部

我继承了一个由不再为我的雇主工作的人创建的应用程序,我正在研究一个打印问题,其输出(略微)从页面上消失.

它应该是:

在此输入图像描述

但它出来是这样的:

在此输入图像描述

我在此页面上添加了黑色边框以便于辨认.

如您所见,打印件略微向右和向下移动,因此它超出了允许的边界.

我的问题

我正在查看代码,寻找可能导致此问题的选项,但我现在正在填补空白.

选项A(理想解决方案):

关于可能导致这种转变到右下角的任何想法?

选项B.

知道如何缩小正在打印的内容,以便内容不再从页面上掉下来吗?

如果您需要代码来帮助清除正在发生的事情,请告诉我(我无法在前面缩小任何内容以发布任何内容).

c# printing system.drawing scale

6
推荐指数
1
解决办法
366
查看次数

MVC - IoC Unity - 确保控制器具有无参数的公共构造函数

问题

我使用Unity作为IoC并且运行良好,但随着我不断添加功能,查明任何错误变得越来越困难,因为Unity提供的错误是错误的症状,而不是实际的错误:

"Message":"An error has occurred.","ExceptionMessage":"An error occurred
when trying to create a controller of type 'MyController'. Make sure that the
controller has a parameterless public
constructor.","ExceptionType":"System.InvalidOperationException"
Run Code Online (Sandbox Code Playgroud)

背景

我有一个MVC Web Api控制器,它依赖于Manager实例(来自域):

public class MyController : ApiController
{
    private IMyManager MyManager { get; set; }

    public MyController(IMyManager myManager)
    {
        this.MyManager = myManager;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

发生上述错误是因为IMyManager的IoC映射失败.因为它失败了,我没有参数,这意味着使用无参数构造函数调用MyController,但由于它不存在(并且不应该),我得到上述错误.

我试过了什么

所以,我得到的错误不是"真正的"错误.显而易见的是确保每个新的实现都在IoC下注册,我检查了它们.我手动操作以保持可管理性(哦,具有讽刺意味!).

我这样做:

container.RegisterType<IMyManager, MyManager>();
Run Code Online (Sandbox Code Playgroud)

但是,这不是问题.

我做的一个修复是循环依赖.我更改了所有涉及的构造函数和方法以使用属性值,而不是实例.我检查了所有涉及的类,并且不再有任何循环依赖.

然而,问题仍然存在.

这个问题

我该怎么做才能找出实际问题?手动检查依赖关系是一种过多的开销,因为结构是一个更复杂的依赖关系网络.随着应用程序的成熟,这将变得更糟.

或者,如果Unity总是模糊这些消息(无法解决这些问题),那么有没有其他方法可以提供有价值的错误信息?

UPDATE

每个请求,完整的错误消息(虽然我不认为堆栈跟踪是非常有帮助的):

{"Message":"An error has occurred.","ExceptionMessage":"An error occurred when trying to create a controller …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc inversion-of-control

5
推荐指数
2
解决办法
1万
查看次数

使用 JsonProperty 将 JSON 绑定到模型属性

我受我方和客户之间协议的约束,必须使用包含破折号的 json 参数。由于无法在 C# 中的属性名称中使用它,因此我需要映射到所需的属性。

我现在应该做什么:

为了方便起见,下面的代码被简化了。

模型

public class MyRequest
{
    [JsonProperty("request-number")]
    public string RequestNumber { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器

[HttpGet]
[Route("api/load-stuff")]
public Stuff LoadStuff([FromUri]MyRequest request)
{
    return BackEnd.LoadStuff(request);
}
Run Code Online (Sandbox Code Playgroud)

客户端调用API

上述控制器使用以下 uri 进行定位:

http://localhost:12345/api/load-stuff?request-number=X123&name=requestName
Run Code Online (Sandbox Code Playgroud)

我的问题

如果我在该行放置一个断点,BackEnd.LoadStuff我可以看到调用到达,但请求未正确映射。

名称包含我期望的内容:requestName,但 RequestNumber 是null,因此映射不起作用。

出了什么问题?

c# rest json asp.net-web-api2

5
推荐指数
1
解决办法
6114
查看次数

AngularJS:如何通过id获取DOM元素

样品

请考虑一下Plunkr.

我需要的

我需要能够通过它的id得到一个元素.

示例代码应该能够将css类分配给当前视图中存在的任何DOM元素.

应使用源对象检查,该对象由控制器中的$ scope提供.此源对象可能/将具有比视图上的输入元素更多的属性.

所以我想遍历每个对象键,看看是否存在相应的DOM元素.如果是这样,请验证它的价值.

这个问题

我如何通过id获取元素,仅使用AngularJS(不允许使用jQuery !!)?

特别是对于Plunkr,我需要这个功能(真的)工作:

self.IsFieldCurrentlyActive = function(field){
  // Should be (in pseudocode):
  // var inputElement = angular.find(field);
  // return (inputElement != 'undefined');

  // Sample only
  var idx = field.indexOf('Unused');
  return idx == -1;
};
Run Code Online (Sandbox Code Playgroud)

而这一个(基本相同):

self.GetElementByKey = function(key)
{
  // Should be (in pseudocode):
  // var inputElement = angular.find(field);
  // return inputElement;

  // Sample only
  return null;
}
Run Code Online (Sandbox Code Playgroud)

更新

道歉,我忘了添加一个重要的要求:我不能使用任何假定唯一ID的机制,因为可能会出现多次相同形式(以及相同的ID).所以,我需要尊重Angular范围.

谢谢!

javascript css dom angularjs

4
推荐指数
2
解决办法
4万
查看次数