小编D.R*_*.R.的帖子

Chrome调试 - 在下次点击活动中休息

我们有一个按钮.Click事件由第三方框架处理,但是,框架在某种程度上是错误的.

我们想调试框架,但是,我们不知道相应的事件处理程序代码在哪里设置断点.如何一般"打破下一次点击事件",看看第三方框架处理这个点击的位置和方式?

javascript debugging google-chrome google-chrome-devtools

178
推荐指数
1
解决办法
7万
查看次数

使用了哪个参数集?

我使用了高级参数处理来支持多个参数集.是否有任何预定义的变量或方法来确定哪个参数集用于调用脚本?

例如

if($parameterSet -eq "set1") { ... } elseif ($parameterSet -eq "set2") { ... }
Run Code Online (Sandbox Code Playgroud)

parameters powershell optional-parameters

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

ASP.NET MVC 5错误处理

我们希望处理403错误,404错误,由于a导致的所有错误,MySpecialDomainException并为所有其他错误(包括IIS配置中的错误!)提供默认错误页面.所有错误都应该返回正确的Razor视图,ErrorController在视图前面有一个非常好的.例如,像这样:

public class ErrorController : Controller
{
    public ViewResult NotFound () { return View(); }
    public ViewResult Forbidden () { return View(); }
    public ViewResult Default ()
    {
        var ex = ObtainExceptionFromSomewhere();
        if(ex is MySpecialDomainException)
            return View("MySpecialDomainException", new ErrorModel { Exception = ex });

        return View("GeneralError", new ErrorModel { Exception = ex });
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,您可以在www上找到许多不同的方法,有些可能已经过时了.在这些:

  • Controller.OnException()
  • 错误过滤器
  • web.config中的customErrors元素
  • 处理Global.asax的Application_Error

Q1:使用ASP.NET MVC 5满足我们要求的推荐方法是什么?

我们还希望捕获IIS主机中发生的错误.Q2:为了防止IIS必须处理任何404,我们考虑添加一个匹配所有可能URL的默认路由 - 这是值得推荐的吗?最好注册IIS的404'?

问题3:甚至可以注册一个可以返回控制器的IIS错误页面,还是仅支持ASPX /静态HTML的IIS?

c# error-handling asp.net-mvc asp.net-mvc-5 asp.net-mvc-5.1

38
推荐指数
3
解决办法
8万
查看次数

隐式捕获闭包,ReSharper警告

我通常知道"隐式捕获关闭"意味着什么,但是,今天我遇到了以下情况:

public static void Foo (Bar bar, Action<int> a, Action<int> b, int c)
{
    bar.RegisterHandler(x => a(c)); // Implicitly captured closure: b
    bar.RegisterHandler(x => b(c)); // Implicitly captured closure: a
}
Run Code Online (Sandbox Code Playgroud)

为什么我也暗中捕获其他动作?如果我评论两条线中的任何一条,另一条不会给我警告.有人知道ReSharper警告我的危险吗?

编辑:ReSharper 8.0.1

c# resharper closures

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

PowerShell字符串默认参数值无法按预期工作

#Requires -Version 2.0

[CmdletBinding()]
Param(
  [Parameter()] [string] $MyParam = $null
)

if($MyParam -eq $null) {
  Write-Host 'works'
} else {
  Write-Host 'does not work'
}
Run Code Online (Sandbox Code Playgroud)

输出"不起作用"=>看起来像字符串隐式地从空转换为空字符串?为什么?如何测试一个字符串是空的还是真的$ null?这应该是两个不同的值!

powershell powershell-4.0

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

从snk文件中获取.NET PublicKeyToken?

如何从snk文件中获取PublicKeyToken?使用命令行工具.我想过使用sn.exe但是找不到合适的参数.

.net

18
推荐指数
3
解决办法
8024
查看次数

PowerShell XML SelectNodes无法处理XPath

我想使用PowerShell获取我的csproj文件中所有项目引用的列表.目前我有以下方法:

[xml]$csproj = Get-Content MyProject.csproj

$refs = $csproj.SelectNodes("//ProjectReference")
foreach($ref in $refs) {
  # Later on output more useful information
  Write-Host $ref.Name
}
Run Code Online (Sandbox Code Playgroud)

但是,尽管在给定的csproj文件中肯定存在ProjectReference元素,但脚本不会输出任何内容.以下是有效的:

[xml]$csproj = Get-Content MyProject.csproj
foreach($l in $csproj.Project.ItemGroup.ProjectReference) { Write-Host $l.Include }
Run Code Online (Sandbox Code Playgroud)

但是我以后也需要XPath +它为每个不包含ProjectReference的ItemGroup输出错误 - 那么如何使用SelectNodes函数使XPath工作?

示例XML(基本上任何带有项目引用的VS csproj文件都可以):

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup></ItemGroup>
  <ItemGroup>
     <ProjectReference Include="Text"></ProjectReference>
     <ProjectReference Include="Text2"></ProjectReference>
  </ItemGroup>
  <ItemGroup></ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

xml powershell xpath powershell-4.0

17
推荐指数
1
解决办法
6849
查看次数

快速检查IEnumerable <T>是否包含重复项(=不同)

是否有快速内置方法来检查是否IEnumerable<string>只包含不同的字符串?

一开始我开始:

var enumAsArray = enum.ToArray();
if (enumAsArray.Length != enumAsArray.Distinct().Count())
    throw ...
Run Code Online (Sandbox Code Playgroud)

但是,这看起来像是O(2n) - 是吗?ToArray()可能是O(1)?

这看起来更快:

var set = new HashSet<string>();
foreach (var str in enum)
{
    if (!set.Add(str))
        throw ...
}
Run Code Online (Sandbox Code Playgroud)

这应该是O(n),但是,是否也有内置方式?

编辑:也许Distinct()在内部使用它?


解决方案: 在考虑了所有的评论和答案后,我为我的第二个解决方案编写了一个扩展方法,因为这似乎是最快的版本,也是最具可读性的:

public static bool ContainsDuplicates<T>(this IEnumerable<T> e)
{
    var set = new HashSet<T>();
    // ReSharper disable LoopCanBeConvertedToQuery
    foreach (var item in e)
    // ReSharper restore LoopCanBeConvertedToQuery
    {
        if (!set.Add(item))
            return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

c# collections

15
推荐指数
1
解决办法
2323
查看次数

带花括号的环绕码代码块?

是否有一个快捷方式围绕给定(选定)花括号的代码块?

VS 2015 + R#2016.1

resharper visual-studio visual-studio-2015 resharper-2016

15
推荐指数
4
解决办法
8950
查看次数

实现派生类的TextWriter

我有两个课程,我不能以任何方式改变:

第1类:将a TextWriter作为构造函数参数并将其用作输出流.

第2类:提供方法WriteLine(string).

我需要一个适配器,这样Class1的所有输出都写入Class2.因此,我启动了一个适配器,它扩展TextWriter并缓冲传入的文本,并在新行到达时将其刷新到class2实例.

但是,TextWriter中有很多方法 - 我应该实现哪些方法?Class1中的输出仅为字符串.

根据MSDN,应该至少覆盖Write(char),但是,这强制我自己完成所有\ r \n新行处理...

Q1:你知道更好的方法来实现我的目标吗?Q2:如果不是,我应该覆盖哪些TextWriter方法以实现最小的实现工作.

c# textwriter

14
推荐指数
1
解决办法
6639
查看次数