lindexi

林德熙 - 微软最具价值专家和 .NET 基金会成员

林德熙

asp dotnet core 基于 TestServer 做集成测试

我有一个古老的 dotnet core 3.1 的 asp dotnet core 项目,现在我准备将他升级到 dotnet 5 了。但是我不想和博客园一样翻车,因此我需要做一点集成测试的辅助,尽管依然还是翻车了,但是我要学习博客园伟大的精神,将在这个项目里面所做的所有自动化测试项目的方法写下来

WPF 后台代码做 TranslateTransform 的动画

本文告诉大家,在后台代码,对 TranslateTransform 做动画的方法

dotnet C# 如果在构造函数抛出异常 析构函数是否会执行

假设在某个类型的构造函数里面抛出了异常,那么这个对象的析构函数是否会执行

dotnet C# 如果在构造函数抛出异常 是否可以拿到对象赋值的变量

如果使用某个变量去获取某个类型的对象创建,但是在这个类型的构造函数调用时抛出异常,请问此变量是否可以拿到对应的对象

dotnet C# 在 finally 抛异常会发生什么

如果我在一个方法的 finally 里面抛出异常,而在 try 里面也抛出,那在上层拿到的是什么

VisualStudio can not get the correct struct object value in Locals windows

VisualStudio 的局部变量窗口里面看到某些结构体的值和实际上的结构体调用 ToString 方法返回的值是不同的 When I use the unsafe struct with the special size and I override the ToString method, then I can find the actual ToString value and the value in VisualStudio Locals windows are different

NewLife 的 RocketMQ 的生产者每次都是新实例将只由一个消费者消费

我写了一点逗比代码,让在每次使用 NewLife 的 RocketMQ 发送消息时,都创建一个新的 Producer 生产者。此时我发现了在我的消费者里面,无论开多少个消费者实例进程,每次都只有一个消费者进行消费

WPF 如何知道当前有多少个 DispatcherTimer 在运行

在 WPF 调试中,对于 DispatcherTimer 定时器的执行,没有直观的调试方法。本文来告诉大家如何在 WPF 中调试当前主线程有多少个 DispatcherTimer 在运行

Roslyn 如何获得一个类的引用

本文告诉大家如何在 Rosyln 编译一个文件,获得这个文件的类的命名空间

Win32 使用 SetCurrentProcessExplicitAppUserModelID 关联多个进程 在任务栏合并 WPF 多进程窗口

我有一个 WPF 应用,这是一个绿色软件,会被用户拷贝这和那的文件夹,我期望在多个文件夹里面打开的进程,在任务栏里面都可以将窗口进行合并。使用 Win32 的 Shell32.dll 提供的 SetCurrentProcessExplicitAppUserModelID 可以显设置应用的 Application User Model ID 从而让在多个不同的路径打开的应用,使用相同的 Id 而在任务栏进行合并窗口

dotnet 读 WPF 源代码 聊聊 DispatcherTimer 的实现

本文来告诉大家在 WPF 框架里面,是如何实现 DispatcherTimer 的功能。有小伙伴告诉我,读源代码系列的博客看不动,原因是太底层了。我尝试换一个方式切入逻辑,通过提问题和解决问题的方法,一步步告诉大家 WPF 是如何实现 DispatcherTimer 的功能

让 dotnet 命令行输出作为英文的方法

在我的设备上,默认的 dotnet 命令行都是输出中文,如我输入 dotnet build 命令,里面的错误提示也是中文。在我想要和国外的小伙伴报坑时,如果里面有很多中文,我觉得他将会看不懂,从而不理我。本文来告诉大家如何让 dotnet 的命令行输出英文,从中文切换语言为英文

dotnet 忽略输出文件夹的正则表达式

本文告诉大家在 dotnet 里面忽略 obj 和 x86 等输出文件夹的正则表达式内容

WPF 的 DefaultEventAttribute 有什么作用

在自定义 WPF 控件库时,可以看到有一些控件会加上 DefaultEventAttribute 特性,通过这个特性可以告诉 XAML 编辑器,默认创建的事件是什么

WPF 在窗口的 Deactivated 使用 Mouse 的 Capture 将会让进程失去交互

如果在某个窗口的 Deactivated 事件里面,使用 Mouse.Capture 方法,让这个窗口重新捕获鼠标,那么将会让进程的所有窗口都失去鼠标交互,点击无效,只有在切换到其他进程的窗口之后,才能让窗口继续交互

dotnet 读 WPF 源代码 Popup 的 StaysOpen 为 false 将会吃掉其他窗口的首次激活

在 WPF 中,使用 Popup 控件,可以设置 StaysOpen 属性来控制是否在 Popup 失去焦点时,也就是点击界面空白处,自动收起 Popup 控件。但如果有两个窗口,在设置 Popup 控件的 StaysOpen 属性为 false 那么将会吃掉在点击其他窗口的第一次交互,如鼠标点击或触摸点击时将不会让本进程的其他窗口 Activate 激活

dotnet OpenXML 预设 PresetColorValues 颜色对应的值

本文来告诉大家 ECMA 376 文档的 20.1.10.47 章的 ST_PresetColorVal 预设颜色值对应的颜色

考古 dotnet 的不同版本

本文来考古一下 dotnet 发布过的版本,相信本文里面有很多个版本都是大家很少听过的

WPF 在触摸线程等待主线程窗口关闭会让主线程和触摸线程相互等待

本文是记录一个线程相互等待导致主线程无法响应的问题,这个问题是属于一定可以复现的问题,是 WPF 的已知问题。如果遇到这个问题,属于暂时没有方法解决,只能规避。 这个问题的最简单复现步骤是在触摸线程,也就是 StylusInput 线程,等待一个主线程的窗口关闭,此时就会出现主线程卡住的问题

苏州 开源自主的 dotnet 生态

本文仅仅只是用来在2020苏州开发者大会上的素材,开发者大会成功完成,本文也可以公开

dotnet OpenXML 解压缩文档为文件夹工具

做 Office 解析,是需要进行不断的测试才能了解 OpenXML 里面的属性的作用。根据 Ecma 376 的定义,文档其实只是一个压缩文件,可以使用压缩工具进行解压缩。但是我需要不断进行修改文档里面的属性,然后用 Office 打开,测试属性的效果,此时就需要有一个工具用来提升效率

Unity3D OpenVR SteamVR 在头盔视觉前面常驻文本

我期望在玩家视觉前方常驻一点文本,用于做有趣的交互,实现方法很简单

Unity3D OpenVR SteamVR 点击菜单切换场景

本文来告诉大家如何在基于 SteamVR 的 Unity3D 里面在用户点击菜单的时候,切换到新的场景的方法

Autofac 集成测试 在 ConfigureContainer 之后进行 Mock 注入

在使用 Autofac 框架进行开发后,编写集成测试时,需要用 Mock 的用于测试的模拟的类型去代替容器里面已注入的实际类型,也就需要在 Autofac 完全收集完成之后,再次注入模拟的对象进行覆盖原有业务代码注册的正式对象。但 Autofac 默认没有提供此机制,我阅读了 Autofac 的源代码之后,创建了一些辅助代码,实现了此功能。本文将告诉大家如何在集成测试里面,在使用了 Autofac 的项目里面,在所有收集完成之后,注入用于测试的 Mock 类型,和 Autofac 接入的原理

dotnet OpenXML 读取形状轮廓线条样式序号超过主题样式列表数

在 OpenXML 中,默认的形状可以通过指定 LineReference 让形状使用文档主题里面的样式。文档主题里面包含多个样式,在形状里面指定样式通过的是序号的方法,如果在形状里面指定的序号超过了主题的数量,那么将会使用最后一项样式

WPF 用到的触摸的 COM 接口

本文记录 WPF 用到的触摸的 COM 接口

WPF 列表控件数据源绑定多个数据集合方法

在 WPF 用的多的列表控件如 ListBox 或 ListView 等,本文告诉大家在这些列表控件上进行绑定多个数据集合来源的多个实现方法。如有一个显示动物列表的控件,需要绑定的数据来源是阿猫和阿狗两个 ObservableCollection 列表,不在后台代码编写合并集合的代码情况下,可以通过 XAML 的编写,绑定多个数据集合

dotnet C# 实现 GetHashCode 的方法

本文来聊聊在重写某个类的 GetHashCode 方法时,可以如何实现 GetHashCode 的返回值

dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用

本文来安利大家一个有趣而且强大的库,通过 F# 和 C# 混合编程编写 WPF 应用,可以在 WPF 中使用到 F# 强大的数据处理能力

Unity3D OpenVR SteamVR 获取输入动作按键 交互设备数据方法

在开发 OpenVR 游戏或应用时,由于 VR 设备的交互形式和传统的形式不相同,因此获取输入交互设备数据如按键等的方式也有所不同。在 Steam VR SDK 里面给出了推荐的做法是只定义交互名称,而不获取具体的硬件设备信息,也就是说咱在应用或游戏里面采用的交互都是抽象的交互,至于这个抽象的交互是采用哪个硬件产生的,就交给跟上一层进行定义,于是就能很好的将编写代码的获取输入和各个不同类型的 VR 控制器隔离开来,避免 VR 应用绑死某个控制器上,也能很好的支持未来的交互设备

Unity3D OpenVR SteamVR Input Action 动作

本文来告诉大家在 Unity3D 中的 SteamVR Input 里面的 Action 动作行为

Unity3D OpenVR 虚拟现实 保龄球打砖块游戏开发

据说水哥买了 Valve Index 设备,既然这个设备这么贵,不开发点有(zhi)趣(zhang)游戏就感觉对不起这个设备。本文将来开始着手开发一个可玩性不大,观赏性极强的保龄球打砖块游戏。这仅仅只是一个入门级的游戏,代码量和制作步骤都超级少,适合入门

Unity3d 入门 控制相机移动

本文将告诉大家如何在 Unity3D 中通过键盘或鼠标进行控制 Unity3D 的相机移动。在 Unity3D 中的相机相当于人的视角,通过移动相机可以用来修改咱界面看到的画面

我写的逗比代码

本文记录我写的代码逗比代码

WPF 适合入门阅读的开源项目 SeeGit 图形化 Git 历史记录

本文来安利大家一个不错的开源项目,这个开源项目整体写的不错,也有用到 MVVM 框架,项目组织以及命名等都还行,功能也实现完全,适合入门级阅读