代码编织梦想

dotnet 使用 FileAccess 与 OpenOrCreate 对文件访问权限的影响-爱代码爱编程

本文告诉大家在 dotnet 里面,客户端应用,如 WPF 应用对当前应用程序运行用户无写权限的文件进行访问的时候,调用 File.Open 方法的各个参数的影响 在 File.Open 方法里面其实就是对 FileStream 创建的封装,在 FileStream 的构造函数有大量的参数,而对文件权限有影响的是 FileMode 和 FileAcces

dotnet core 应用是如何跑起来的 通过自己写一个 dotnet host 理解运行过程-爱代码爱编程

在上一篇博客是使用官方提供的 AppHost 跑起来整个 dotnet 程序。本文告诉大家在 dotnet 程序运行到托管代码之前,所需要的 Native 部分的逻辑。包括如何寻找 dotnet 运行时,如何加载运行时和框架然后跑起来业务端的 dll 文件的逻辑 在上一篇博客告诉大家在 dotnet 的 AppHost 是如何做的,详细请看 dotnet

Xamarin iOS 部署应用提示 iOS code signing key 失败-爱代码爱编程

在部署 iOS 应用的时候,如果是拉别人的代码,因为被使用了别人的签名,就会提示 Error: iOS code signing key ‘iPhone Developer: lindexi@icloud.com (F56JH45N57)’ not found in keychain. 部署失败。解决方法是替换为自己的账号 原因就是在 csp

使用 IOC 控制反转和 DI 依赖注入的意义-爱代码爱编程

其实我的标题没写对,这个话题我是聊不下去的。 本文只和小伙伴聊聊为什么使用容器注入,优缺点是什么。我通过问问题的方式让小伙伴了解这么做的意义 在开始之前我就可以告诉小伙伴使用容器注入的缺点了,尽管这很有争议 内存泄漏降低性能那是否 IOC 控制反转意味着一定需要配合 DI 依赖注入?答案是不一定的,还有好多有趣的手段 那 DI 依赖注入和容器注入有什

推荐官方开源 PInvoke 库 包含大量 win32 封装-爱代码爱编程

在调用 win32 库的时候,小伙伴会遇到的问题是不知道对应的 win32 函数应该如何写。或者在网上抄了的代码的实现都有些诡异,想要自己封装发现工作量太大。好消息是官方将 PInvoke 库在 dotnet 基金会完全开源,包含了大量的 Win32 库,如 gdi32.dll 和 kernel32.dll 和 user32.dll 等 使用官方的库的优

Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用-爱代码爱编程

本文将告诉大家如何从零开始在 iOS 上部署 Walterlv.CloudKeyboard 应用。这个 Walterlv.CloudKeyboard 应用是一个云输入法应用,在 GitHub 完全开源,采用 Xamarin 开发,用途是让手机接收电脑端的打字输入的输入法。因为我没有在 iOS 上找到任何一款稍微能用的输入法,因此只能拜托太子帮我开发一款应用

WPF dotnet core 如何开启 Pointer 消息的支持-爱代码爱编程

在 WPF 下,可以使用和 UWP 一样的 Pointer 触摸架构,只是开启的方式和 .NET Framework 版本有细微的差异 看过 win10 支持默认把触摸提升 Pointer 消息 的小伙伴可以了解到,这个博客的方法是通过配置文件的方式 而在 .NET Core 的 WPF 下是不会去读取 App.config 文件,那么此时应该如何开启

WPF 设置资源字典多线程安全读写方法-爱代码爱编程

在 WPF 中,使用 ResourceDictionary 本身不会受到创建线程同步影响,意味着可以在任意的线程创建 ResourceDictionary 资源字典,然后在任意线程使用。但是此时的读写需要有时间上的差距,否则将会多线程读写不安全。在 ResourceDictionary 有一个 CanBeAccessedAcrossThreads 属性用来

WPF 底层 从手指触摸屏幕到笔迹在屏幕显示中间的步骤-爱代码爱编程

整个 WPF 就是一个UI框架,一个 UI 框架最重要的是 交互 和 显示 部分,而书写这个功能将会完全贯穿 WPF 整个框架的功能。本文非入门级博客,本文包含了大量链接博客,阅读本文你将会了解从用户手指触摸屏幕到最终屏幕打印出笔迹的应用程序执行的步骤 本文实际内容不多,但是如果加上链接的博客,那么总内容将会非常多,还请小伙伴仔细阅读本文链接的博客 从

读书笔记 dotnet 什么时候进行垃圾回收-爱代码爱编程

是否有小伙伴好奇如果没有在代码调用垃圾回收,那么框架会在什么时候调用垃圾回收。本文是读还没出版的伟民哥翻译的 .NET内存管理宝典 - 提高代码质量、性能和可扩展性 这本书的笔记 当前是 2020年9月 本文的知识最新就是当前的时间,因为 dotnet 的更新速度十分快,当前由 dotnet 基金会维护整套 dotnet 开源项目。从编译器到运行时全部都

dotnet OpenXML 文本字体的选择规则-爱代码爱编程

在 Office 的文本排版里面,会根据字符选择使用哪个字体插槽。也就是实际上在 Office 里面可以在一个文本段里面指定多个字体,会根据实际的字符使用不同的字体 在做 Office 解析的时候,在 OpenXML SDK 里面是没有找到表示字体的属性的,只能找到 LatinFont 和 EastAsianFont 和 ComplexScriptFon

WPF 在后台代码定义 ResourceDictionary 资源字典-爱代码爱编程

在 WPF 中的 ResourceDictionary 资源字典大部分都是在 XAML 里面定义的,但是在 C# 代码定义一个资源字典也是可行的,只是写起来有点诡异 在 CSharp 后台代码里面给 WPF 定义资源字典需要重新创建一个类,让这个类继承 ResourceDictionary 如以下代码 public class Foo :

asp dotnet core 提供大文件下载的测试-爱代码爱编程

本文仅仅是提供测试使用的代码 提供文件下载只需要返回 PhysicalFile 方法,如下面代码 [HttpGet] public IActionResult Get() { var folder = Path.GetDirectoryName(Assembly.GetExe

dotnet 让 C# 可以通过动态生成 HLSL 使用 DX12 的 GPU 并行计算库 ComputeSharp 的简介-爱代码爱编程

本文来安利大家一个超强的库,这个库可以让你的 C# 代码利用上 GPU 显卡的性能,进行一些并行计算。这个库是基于 DirectX12GameEngine 的 ComputeSharp 库。在这个库里面将会动态生成 HLSL 代码,使用着色器的方式在 GPU 上跑起来 这个 ComputeSharp 库在 GitHub 完全开源,请看 https://g

非技术 在线教育与电信行业的发展-爱代码爱编程

今天在去买菜的时候,听到旁边有个移动的小哥哥在向一位大叔叔推荐办理移动带宽升级业务,他说到一句话,你升级一下带宽,你的小孩上在线课程的时候多顺哇。本来是没当回事,只是无聊的时候想到这一点,我认为这里是一个大的利益链,于是写博客记一下 现在是 2020.08.30 我想看看是否我认为的是对的 本文不聊任何技术,也不聊任何音视频相关的技术哈,只是想聊聊利益

制作的 dotnet tool 运行失败提示依赖缺失-爱代码爱编程

小伙伴做了一个很好用的 dotnet tool 工具,但是这个工具仅在他的设备上能运行,在我的设备上运行就会退出提示 An assembly specified in the application dependencies manifest (LindexiDoubi.deps.json) was not found 找不到依赖 默认选择 dotnet

开源实战-爱代码爱编程

本文记录我参与的开源项目 dotnet runtime Add logger to cache entry to catch exception by lindexi · Pull Request #37292 · dotnet/runtimeUse Array.Empty in CompositeFileProvider by lindexi · P

dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 的属性作用-爱代码爱编程

本文收集元素属性 cNvPr Non-Visual Drawing Properties 的属性的作用 本文的 Non-Visual Drawing Properties 也就是在 OpenXML 文档里面的 cNvPr 代码,在 ECMA 376 的 20.2.2.3 文档有详细说明 在形状的 Non-Visual Drawing Propertie

dotnet ConcurrentDictionary 的 GetOrAdd 性能比 TryGetValue 加 TryAdd 低-爱代码爱编程

我在 Office 的 Open-XML-SDK 库里面找到有代码线程不安全,代码里面使用了 TryGetValue 加 TryAdd 的方法添加对象,而线程安全的方法是通过 GetOrAdd 方法。不过在小伙伴的评论我找到了 GetOrAdd 性能其实在有闭包的时候不如使用 TryGetValue 加 TryAdd 调用这两个方法,但是 GetOrAdd

WPF 绑定继承的样式提示 只能根据带有基类型 IFrameworkInputElement 的目标类型的 Style 样式-爱代码爱编程

在 WPF 中,如果有一个样式是继承另一个样式,而样式没有使用 TargetType 那么在运行的时候会提示 只能根据带有基类型 IFrameworkInputElement 的目标类型的 Style 样式 在界面添加下面代码 <Window.Resources> <Style x:Key="Style1