lindexi

林德熙 - Windows 10 App Developer

林德熙

WPF 判断调用方法堆栈

最近遇到一个问题,经常有小伙伴在类A的构造里调用静态函数B,但是这时B依赖于A的初始化完成,于是就无限循环。所以我需要在判断小伙伴调用B时是否在A的构造方法里,如果是就给他异常。 本文告诉大家如何使用 StackTrace 获得调用堆栈,并且判断当前是否构造调用

C# 写系统日志

因为我不想使用自己写文件,我的软件是绿色的,所以把日志写到 Windows 日志。

C# 设计模式 责任链

责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。《JAVA与模式》

C# 7.0

C# 7.0 可以在 VS 17 使用,这个版本我下载企业版上传百度云,有需要可以到文章最后去下载。 本文主要:C# 7.0 带来的新功能

  • out 返回值定义
  • Tuples
  • 模式匹配
  • ref 返回本地值
  • 内部函数
  • 全部地方可以支持辣么大
  • 在表达式扔异常
  • 广义异步返回类型
  • 数值常量语法 顺便告诉大家 7.1 的新特性
  • 支持 async 的主函数
  • 默认值不需要写类型
  • 自动推断 Tuple 的名称
  • 值引用
  • 指定位置命名参数
  • private protected 访问修饰
  • 字符常量下划线可以放在最前

.NET Standard

本文收藏我找到的博客,可以让大家快速知道什么是.NET Standard

Office OpenXml SDK 使用 Fallback 图片显示 Ole 元素

我在写一个 WinForms 程序用来读取 Word 里面的图片显示,在解析 Word 等 Office 文档,会看到一些 ole object 元素,而有些 ole object 会有 Fallback 图片,用这些备用的图片可以显示 ole 元素

WPF dotnet 使用本机映像 native 优化 dotnet framework 二进制文件

在 2017 我在社区问了一个问题,如何让 .NET Framework 的 WPF 等程序使用 .NET Native 构建以提升速度。在 2019.06 的时候,强大的微软提供了一个好用的库,支持将 .NET Framework 的桌面应用构建时添加 native images 本机映像支持

UWP 上架失败因为没有添加隐私策略

在使用 UWP 上架之前需要经过微软的审核,在美国很看重个人隐私,因此需要在两个地方都填写上隐私策略。第一个是应用商店里面,第二个是应用程序里面

UWP 打包 win32 应用 添加防火墙例外

我想要将一个 WPF 应用打包为 UWP 应用,然后用我自己的商店发布,在做 UWP 安装包的小伙伴会问如何和 nsis 一样添加防火墙例外

Unity3d 修改编辑界面控制图标大小 修改相机图标显示大小

在 Unity3d 会显示一些控制图标,如相机图标和光照图标。而在编辑界面我发现这些图标太大了,影响我编辑,可以通过界面控制修改图标显示大小

VisualStudio 各版本 msbuild 路径

本文收藏 msbuild 所在路径

Github 添加 Action 编译图标

在我的仓库里面,可以在首页添加图标显示当前是否编译通过

VisualStudio 调试内存泄漏方法

虽然在写 .NET 程序,很难做到内存泄漏,但是一个软件做的很大时会发现还是有一点点的内存泄漏。本文告诉大家如何通过 VisualStudio 调试内存泄漏,这个方法适合进行日常优化

NuGet 命令行上传找不到 snupkg 文件

在 NuGet 提供符号 NuGet 库的支持,在默认上传将会同时上传符号库。在 NuGet 上传文件将会默认将 snupkg 符号文件上传

VisualStudio 命令行编译 build 通过 rebuild 不通过

在使用命令行编译项目,发现使用 build 可以编译通过,但是通过 rebuild 编译提示找不到项目,明明在对应的文件夹存在项目输出的 dll 文件,但是会提示找不到

UWP 转换 IBuffer 和其他类型

本文告诉大家在 UWP 如何转换 IBuffer 为 string 和 stream 类

Roslyn 在 msbuild 的 target 判断文件存在

在使用 msbuild 定义编译时运行的逻辑,可以使用 Exists 判断文件是否存在

WPF 使用 RawInput 接收裸数据

在 Windows 提供很底层的方法接收硬件设备的裸数据,通过接收裸数据可以做到性能更高的全局键盘,还能支持多个鼠标。但是用这个方法需要自己解析裸数据,同时会因为接受到很多消息降低性能

Roslyn 在多开发框架让 msbuild 的 Target 仅运行一次

在写预编译框架,因为安装项目会基于多个平台,也就是对应的 Target 会执行多次,而我需要的只是执行一次就可以

WPF 使用 MyScript 的 IInk 做手写识别

有小伙伴问我可以如何在 WPF 使用其他第三方提供的库进行手写识别,上次 MyScript 的工程师和我吹,他做了世界上识别最好的库,本文就来安利一下大家这个库。这里库是收费的库,但是可以免费使用,只要不是有大量用户,这个库还是免费用的。用这个库可以在 Windows 平台识别数字、多个不同语言、数学公式手写识别

WPF How to get plain text from RichTextBox

We can not find any function to get plain text from RichTextBox. But we can use TextRange to get plain text.

Inno Setup 安装包脚本 Run 的 Flags 标记

在制作安装包的时候,可以在 Inno Setup 安装包脚本的 Run 里面添加在解压缩安装包文件完成之后,整个安装结束之前执行指定的命令,是作为定制化最高的内容

Github 给仓库上传 NuGet 库

在 Github 可以发布自己的 NuGet 库,本文将告诉大家如何发布

VisualStudio 配置多进程调试快捷键启动项目

在使用 VisualStudio 进行多进程调试的时候,只有第一个设置为启动项目的进程可以通过按下 F5 进行调试,而其他的进程是需要在对应项目右击选择调试,点击启动新实例,这样的调试效率实在很低。本文告诉大家如何设置快捷键用来启动选中项目调试

SharpDx 的代替项目

现在 SharpDx 已经不维护了,如果还需要在 C# 使用 Dx 相关技术,可以使用本文列出的替代项目

HttpRepl 互操作的 RESTful HTTP 服务调试命令行工具

今天早上曽根セイラ告诉我一个好用的工具 HttpRepl 这是一个可以在命令行里面对 RESTful 的 HTTP 服务进行路由跳转和访问的命令行工具。可以使用 cd 这个命令和像文件跳转已经跳转到下一级的路由,也可以通过 dir 命令找到同一级的路由,同时支持集成到 VisualStudio 和 VisualStudio Code 里面

VisualStudio 2019 新创建项目添加 git 仓库

在 VisualStudio 2017 在新建项目的时候给出创建 git 仓库的选项,但是在 VisualStudio 2019 去掉了新建项目的页面,默认新建的项目都是没有带仓库。本文告诉大家如何在 vs2019 里面添加版本管理仓库

WPF 使用 Win2d 渲染

在当前所有渲染框架里面,做 2D 渲染的,最好的框架是 Win2d 这个提供了大量底层接口封装,不仅性能高同时接口设计非常好 在很久之前,只有在 UWP 等现代应用才能使用 Win2d 而 WPF 是不能使用的。好在微软开放了一些黑科技,可以在 WPF 上使用 Win2d 渲染,下面就让我告诉大家如何在 WPF 上使用

Roslyn 理解 msbuild 的清理过程

在开发的时候,小伙伴会使用右击解决方案,点击清理解决方案。在这个按钮点击的背后 msbuild 做了什么?为什么很多时候的清理之后还存在一堆文件?如何让自己想的 Target 也支持清理

Roslyn 开发 NuGet 包的 Task 编译可能遇到的问题

在写 msbuild 脚本的时候,或修改项目文件的时候,将会使用到很多的微软提供的 Task 命令。在需要复杂的编译的时候,可以通过自己定义一个任务用来定义编译

VisualStudio 快速设置启动项目

我现在的软件需要有 100 个项目,同时我需要切换不同的项目作为启动项目,但是右击项目设置为启动需要在很长的右击中找到设置为启动项很慢。本文告诉大家如何在 VisualStudio 设置快捷键,可以让选择的项目作为启动项目

Developing Universal Windows Apps 开发UWA应用 问答

这是一篇在 2015 翻译的社区问答,内容已经过时

VisualStudio 断点调试详解

本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时

VisualStudio 开启仅我代码调试

在 VisualStudio 开始调试的时候经常需要加载很多符号,加载符号的速度很慢,很多时候我只是调试我的代码,因为框架提供的代码都是很稳定的,只有我这么逗比才会写出诡异的方法。可以在设置开启仅我代码进行调试,开启之后只有自己的用户代码才会进行调试,也只有自己的代码才会加载符号文件,这样可以调试的速度