我似乎已经失去了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完全脱离了.
有想法该怎么解决这个吗?
除非我完全失踪了,我的印象中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)
它的工作范围我可以告诉,但我还没有得到任何记录在哪里的线索.
我做了这样的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
我擦了我的项目并重新创建了这样的项目:
然后我复制了我的原始代码并添加了所有必要的参考,没有区别.
我在Visual Studio 2013上,当我打开包含TypeScript,充实或准系统的任何解决方案时,我得到了这个:
(出于保密原因删除了名称)
很快就会导致这个(很可能是众所周知的)消息:
最终,我只能通过杀死特定进程来关闭会话.
我已经要求VS2015,但这需要一个需要一段时间的批准程序.与此同时,我更愿意让VS2013正常工作,特别是因为VS2015没有得到解决它(它应该,但我不知道).
虽然周五的测试工作正常但我现在得到这个错误:
当我查看xUnit的github时,很明显这在xUnit代码上失败了:
GetTestCases代码执行此操作:
所以,正如我所读到的,正如我所料,测试程序集是为了匹配而读取的,由于某种原因突然失败,而在周五就好了.
我尝试了另一种解决方案,它的测试运行得很好.
我试过的
bin
obj
文件夹这些都没有帮助,也没有更新ReSharper.
发生了什么,有什么可以解决这个问题?
ReSharper可能会以某种方式干扰?
我正在查看一位前同事编写的项目,在文件中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”
我继承了一个由不再为我的雇主工作的人创建的应用程序,我正在研究一个打印问题,其输出(略微)从页面上消失.
它应该是:
但它出来是这样的:
我在此页面上添加了黑色边框以便于辨认.
如您所见,打印件略微向右和向下移动,因此它超出了允许的边界.
我的问题
我正在查看代码,寻找可能导致此问题的选项,但我现在正在填补空白.
选项A(理想解决方案):
关于可能导致这种转变到右下角的任何想法?
选项B.
知道如何缩小正在打印的内容,以便内容不再从页面上掉下来吗?
如果您需要代码来帮助清除正在发生的事情,请告诉我(我无法在前面缩小任何内容以发布任何内容).
问题
我使用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) 我受我方和客户之间协议的约束,必须使用包含破折号的 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
,因此映射不起作用。
出了什么问题?
样品
请考虑一下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范围.
谢谢!
c# ×8
.net ×5
javascript ×2
xunit ×2
angularjs ×1
asp.net-mvc ×1
css ×1
dom ×1
json ×1
keyboard ×1
logging ×1
nlog ×1
nservicebus ×1
printing ×1
resharper ×1
rest ×1
scale ×1
typescript ×1
unit-testing ×1
vb.net ×1