10 walter lv

尚未进行身份认证

https://blog.walterlv.com/

等级
TA的排名 3k+

用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试

本文介绍使用 dotnet test 命令进行单元测试的时候,过滤出被测项目中的一部分测试出来,仅测试这一部分。@TOC背景建一个 .NET Core 的单元测试项目,例如项目名字是 Walterlv.Demo.Tests。举例其中的一个测试类如下:using Microsoft.VisualStudio.TestTools.UnitTesting;namespace Walterl...

2020-05-25 16:17:14

WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串

在 XAML 中写绑定是 WPF 学习的必修课,进阶一点的,是用 C# 代码来写绑定。然而一旦绑定的属性是附加属性,好多小伙伴就会开始遇到坑了。本文将介绍如何在 XAML 和 C# 代码中绑定附加属性。@TOC背景代码开始遇到这个问题的背景是我定义了一个附加属性,然后试图通过绑定的方式完成一些业务。用附加属性来完成的很大一个好处在于不需要改动原有的代码破坏原来的类。例如我只需要在任何一...

2020-05-25 16:10:01

VSCode:当匹配到结果时,如何一次性全部选中操作(复制 删除)?

最近需要处理几十万行的文字,然后提取出数千行(嗯,我在做输入法词库)。在 VSCode 里我用正则匹配到了想要的结果后,如何能够快速把这些行提取出来呢?其实非常简单,Alt + Enter 即可选中所有已经匹配到的文字。来,我们看这个具体的例子:这里有一个几十万行的词库,我需要将其中的英文部分提取出来做成单独的词库。于是我使用正则表达式,匹配到所有英文词。接着,按下 Alt + Ent...

2020-05-25 16:07:36

Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境

实际上本文不看也罢,因为整个过程除了网速之外基本没啥坑。不过装完可能有一些配置,所以如果不知道的话可以参考本文。@TOC安装我们共需要安装两款应用:Visual Studio 2019 及 Unity 编辑器组件Unity Hub这两款应用安装不分先后,不过建议全部都安装完后再启动,避免单独启动无法运行使用的问题。安装 Visual Studio 2019 的 Unity 编辑...

2020-05-25 16:04:08

将 Windows Terminal 作为外部工具集成到其他工具 程序 代码中

Windows Terminal 在 Windows 上是一款 UWP 应用,然而其依然具有良好的与外部工具的集成特性,你可以在其他各种工具中配置使用 Windows Terminal 打开。本文介绍如何配置使用 Windows Terminal 打开。@TOC命令行调用在应用商店可以下载到 Windows Terminal (Preview),下载安装后,你就可以开始使用 wt 命令了...

2020-05-25 16:03:51

Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具

Visual Studio 安装过程中一起勾选的 Visual Studio Tools for Unity 提供了与 Unity 编辑器方便的交互功能,充分使用 Visual Studio Tools for Unity 可以提升一部分开发效率减少一点点坑。@TOCVisual Studio Tools for Unity我在 Unity3D 入门:安装 Unity3D 并配置与 Vis...

2020-05-25 16:03:50

在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用

Visual Studio 2019 (16.5) 版本更新中带来了一项很小很难注意到却非常实用的功能,查看哪一个托管线程正在持有 .NET 对象锁。如果你不了解这个功能如何使用,那么可以阅读本文。@TOC更新日志Visual Studio 的官方更新日志中对此功能的描述:View which managed thread is holding a .NET object lock...

2020-05-25 16:03:45

.NET WebClient 类下载部分文件会错误?可能是解压缩的锅

一直在使用 WebClient 下载文件,.NET 已经封装好,所以用起来代码非常简洁;但直到今天发现有一个文件一直不能正确下载下来。本文介绍这个问题的原因和解决方法,更重要的是给出调查方法。@TOC本文所涉及到的域名已经过敏感信息处理,所以实际上你是无法访问到的;但这不影响本文对调查方法的描述。问题我原本是使用如下的代码去下载任意文件的(参数经过简化)。private static...

2020-05-25 16:03:43

.NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑

一般来说,大家在需要监听全局消息的时候会考虑 SetWindowsHookEx 这个 API。或者需要处理一些非自己编写的窗口的消息循环的时候,也会考虑使用它。如果要知道如何使用这个 API,你可以在网上搜到大量这样的文章/博客/教程/文档,然而大多不会提及使用此 API 时遇到的一些坑。阅读本文,你当然也可以知道应该如何使用这个 API,但同时也能了解如何正确使用以避免一些奇怪的问题。@T...

2020-05-25 16:03:43

.NET 的静态构造函数是否线程安全?答案是肯定的!

今天有小伙伴在评估某类线程安全问题的时候,怀疑到静态构造函数里面去了。于是就有了本文。@TOC静态构造函数的执行时机根据官方文档 Static Constructors - C# Programming Guide 所述:A static constructor is called automatically to initialize the class before the fir...

2020-05-25 16:03:39

Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包

因为 Visual Studio 有强大的包管理器插件,所以即便是不熟悉 NuGet 命令的小伙伴也能轻松安装和管理 NuGet 包。不过,对 Unity C# 项目来说,你并不能直接引用 dll,也不能直接使用自带的 NuGet 包管理器完成 NuGet 包安装。本文介绍原因和真正的引用方法。@TOC背景对于传统 .NET/C# 的开发者来说,在解决方案中管理 NuGet 包,在 C#...

2020-05-25 16:03:39

WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。...

最近在改一段 XAML 代码时,我发现无论如何给一个控件添加 Name 或者 x:Name 属性时都会出现编译错误:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。@TOC编译错误编译时,出现错误:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,...

2020-05-25 16:03:36

一点点从坑里爬出来:如何正确打开 WPF 里的 Popup?

在 WPF 中打开一个 Popup 并没有想象当中容易。虽说提供了一个 IsOpen 属性用于显示 Popup,但实际上造成的 Bug 会让你解得死去活来。Win32 的 WS_POPUP 也坑,不过 WPF 会额外再带来一些,所以本文只说 WPF。@TOC先说结论本文一开始就贴出打开一个 Popup 的代码// 在以下代码中,我们假定 popup 是我们要显示出来的 Popup,而 t...

2020-05-25 16:03:34

如何在终端和 PowerShell 中将一个命令自动重复执行多次

你可能有很多原因要将一个命令重复执行多次,本文介绍在多个平台下如何多次重复执行命令。@TOC背景最近遇到一个偶然复现的单元测试错误,于是在每次运行时,打算重复运行多次来调查问题是否已经解决。实际上,重复执行命令有更多用途:通过重复执行来复现一些偶发的问题执行一组命令,每次只有参数不同大大减轻手工输入命令的工作量BashLinux 或者 Mac 系统的终端中,可以使用 for...

2020-05-25 16:03:21

设置用户无需密码自动登录到 Windows 系统

你一定要为你的 Windows 用户账户设置密码,一来会安全一些,而来可以远程登录使用;但有时出于一些特殊的目的,不希望在每次开机后都必须输入密码才能进入系统。于是你可以使用本文提供的方法在每次开机的时候免密码登录到 Windows 操作系统。@TOC步骤在 Windows 搜索框中输入 netplwiz,然后回车打开命令;去掉“要使用本计算机,用户必须输入用户名和密码”的勾勾;点击...

2020-05-25 16:03:11

Windows Linux 系统中获取端口被哪个应用程序占用

管理服务程序的时候,可能会查询某个端口当前被哪个进程占用。不仅能找出有问题的进程将其处理掉,也可以用来辅助检查某个程序是否开启了服务并在监听端口。@TOCWindows 系统Windows 系统上可以使用 PowerShell 命令来查询占用某个端口的程序。比如,我们需要查询 5000 端口被占用的进程是谁,可以在 PowerShell 中输入命令:Get-Process -Id (G...

2020-05-25 16:03:01

最简单的代码,让 WPF 支持响应式布局

响应式布局在各种现代的 UI 框架中不是什么新鲜的概念,基本都是内置支持。然而在古老的 WPF 框架中却并没有原生支持,后来虽然通过 Blend 自带的 Interactions 库实现了响应式布局,但生成的代码量太大了,而且需要引入额外的库。如果只是希望临时局部地方使用响应式布局,那么其实可以直接使用 WPF 内置的绑定机制来完成响应式布局。本文介绍如何使用。思路是在控件尺寸发生变更的时候...

2020-05-25 16:02:58

当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小...

做无边框窗口之后,我们有方法可以让窗口的标题栏区域和边缘调大小的区域继续正常工作,直到——这个窗口上面覆盖了其他的子窗口。这个子窗口会吃掉消息导致父窗口的边缘无法再继续处理这些消息。@TOC子窗口遮挡了父窗口看一下下面的动画,这个窗口的下半部分放了一个子窗口。然后尝试在边缘调节窗口尺寸,会发现被子窗口覆盖的部分是无法完成窗口大小调节的。究其原因,是子窗口处理掉了与调窗口大小相关的消...

2020-05-25 16:02:54

如何给 GitHub Pages 配置多个域名?

因为以前对域名进行了一些调整,所以实际上我的博客在历年来经历了两个域名 blog.walterlv.com(新)和 walterlv.com(旧)。然而 GitHub Pages 只支持一个自定义域名,所以为了兼容旧域名的访问,如何可以让多个域名对应同一个 GitHub Pages 呢?@TOC背景<blog.walterlv.com> (新)walterlv.com (旧...

2020-05-25 16:02:13

通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook)...

创建窗口的时候,可以传一个消息处理函数。然而如果窗口不是自己创建的,还能增加消息处理函数吗?答案是可以的,除了 SetWindowsHookEx 来添加钩子之外,更推荐用子类化的方式来添加。本文介绍如何通过子类化(SubClass)的方式来为窗口添加额外的消息处理函数。@TOC子类化子类化的本质是通过 SetWindowLong 传入 GWL_WNDPROC 参数。SetWindowL...

2020-05-25 16:01:18

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 微软mvp
    微软mvp
    授予通过CSDN博客平台积极分享微软相关技术知识和专业技能,并做出突出贡献的用户。
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。