我正在使用Tasks在我的ViewModel中运行长时间运行的服务器调用,结果将被重新编组Dispatcher
使用TaskScheduler.FromSyncronizationContext()
.例如:
var context = TaskScheduler.FromCurrentSynchronizationContext();
this.Message = "Loading...";
Task task = Task.Factory.StartNew(() => { ... })
.ContinueWith(x => this.Message = "Completed"
, context);
Run Code Online (Sandbox Code Playgroud)
这在我执行应用程序时工作正常.但是当我运行我的NUnit
测试时,Resharper
我在调用时收到错误消息FromCurrentSynchronizationContext
:
当前的SynchronizationContext可能不会用作TaskScheduler.
我想这是因为测试是在工作线程上运行的.如何确保测试在主线程上运行?欢迎任何其他建议.
我喜欢ReSharper提供的许多功能,但我绝对无法忍受格式化和代码完成.它让我每走一步都会绊倒我.在javascript中,它不断地窃取大括号,试图重新格式化我的代码,使其无法正常工作,并且很难找到丢失的部分.
我想禁用所有与ReSharper的格式和代码完成有关的内容,同时仍然可以获得酷炫导航功能的好处.
反正有选择性安装ReSharper吗?我已经尝试在选项中禁用这些东西,但它似乎没有任何好处.
resharper formatting intellisense visual-studio-2010 resharper-6.0
我重命名了一个文件夹并更新了我的命名空间声明,但Resharper 6声称命名空间应该反映它在重命名之前的状态.它在哪里存储文件位置数据?
如何从Resharper实时模板中删除用户类别?如果仅选择了某个类别(而不是模板本身),则会禁用删除按钮:
没有项目提供上下文菜单,编辑模板不提供任何方式来编辑它的类别.
我有一个方法,我想格式化如下:
public static IQueryable<ThingRequest> GetThings( this EntityContext one
, int? two = null
, int? three = null
, int? four = null
, int? five = null
, String six = null
, IEnumerable<String> seven = null) {
Run Code Online (Sandbox Code Playgroud)
基本上,如果方法定义超出了行的长度,我希望每行有一个参数.我不太关心逗号(如果它们出现在每一行的末尾,那很好).
但R#格式化它,而不是:
public static IQueryable<ThingRequest> GetThings( this EntityContext one, int? two = null, int? three = null, int? four = null, int? five = null,
String six = null, IEnumerable<String> seven = null ) {
Run Code Online (Sandbox Code Playgroud)
...所以,它排成一行,但每行有几个参数,很难找出任何一个参数.
顺便说一下,当调用方法时,如果最大行长度超过,它会逐行堆叠参数(即使在这种情况下,我几乎不喜欢它).
我已经进入了R#选项并探索了各种各样的复选框,但我看不出如何改善我的情况.想法?
在Resharper 5中,以下代码导致警告"可以使用基类型声明参数" list
:
public void DoSomething(List<string> list)
{
if (list.Any())
{
// ...
}
foreach (var item in list)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在Resharper 6中,情况并非如此.但是,如果我将方法更改为以下内容,我仍然会收到警告:
public void DoSomething(List<string> list)
{
foreach (var item in list)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
原因是,在此版本中,列表仅枚举一次,因此将其更改为IEnumerable<string>
不会自动引入另一个警告.现在,如果我手动更改第一个版本IEnumerable<string>
而不是使用a List<string>
,我将list
在方法体中的两个事件中得到该警告("可能多次枚举IEnumerable"):
public void DoSomething(IEnumerable<string> list)
{
if (list.Any()) // <- here
{
// ...
}
foreach (var item in list) // <- and here
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我理解,为什么,但我想知道,如何解决这个警告,假设,该方法真的只需要一个 …
在我工作的公司中有一种命名方式,必须将"this"添加到每个函数,属性调用和字段中.有时我会忘记它.我希望Resharper自动完成.
有什么建议?
我知道之前已经问过这个问题了,但问题没有解决方案,而且是去年,所以我想也许有人已经找到了解决这个问题的方法.我正在使用带有SP1的VS2010.在安装SP1之前没有问题.如果我卸载重新#它工作正常.我有一个ASP.Net网站和一些其他项目.来自其他项目的类不被识别,resharper建议使用其他项目,所以我这样做,它把它放在使用中,然后使用也得到"无法解析符号".我曾尝试他们2011给了建议,在这里却什么都没有.如果我删除_Resharper.并重新启动vs,它将工作5秒钟,然后再次全红...
希望有人从那以后找到解决方案......谢谢
编辑:我注意到它使用Web服务执行此操作
我下载了与ReSharper 6集成的StyleCop 4.6.3,结果非常棒!
但是在某个特定项目中,我想暂时禁用StyleCop警告并稍后再次启用.
有没有办法做到这一点?我似乎无法在ReSharper菜单上找到它(选项等).
ReSharper 6.0为我提供dr
了第一个代码片段中标识符的"访问修改后的闭包"警告.
private IEnumerable<string> GetTheDataTableStrings(DataTable dt) {
foreach (DataRow dr in dt.Rows) {
yield return GetStringFuncOutput(() => dr.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我想我已经基本了解了这个警告试图保护我的内容:dr
在询问GetTheDataTableStrings的输出之前多次更改,因此调用者可能无法获得我期望的输出/行为.
但是R#没有给我第二个代码片段的任何警告.
private IEnumerable<string> GetTheDataTableStrings(DataTable dt) {
return from DataRow dr in dt.Rows select GetStringFuncOutput(dr.ToString);
}
Run Code Online (Sandbox Code Playgroud)
使用理解语法时,放弃此警告/关注是否安全?
其他代码:
string GetStringFuncOutput(Func<string> stringFunc) {
return stringFunc();
}
Run Code Online (Sandbox Code Playgroud) resharper-6.0 ×10
resharper ×6
c# ×4
.net ×1
formatting ×1
intellisense ×1
namespaces ×1
nunit ×1
stylecop ×1
warnings ×1