
dotnetcore
文章平均质量分 82
lindexi_gd
我是微软Windows应用开发方向的最具价值专家,欢迎访问我博客blog.lindexi.com里面有大量WPF和UWP博客
展开
-
FileStream 的 FlushAsync 方法在 .NET Framework 与 .NET Core 行为的不同
本文记录 FileStream 的 FlushAsync 方法在 .NET Framework 与 .NET Core 行为的不同在使用 HID 设备进行 IO 通讯时,可以采用 FileStream 包装,从而方便进行异步读写,然而在写入完成时,期望调用 FlushAsync 方法将缓存内容刷入设备。然而调用 FlushAsync 时,在 .NET Framework 下的默认行为是将 ...原创 2022-02-08 00:25:21 · 1784 阅读 · 1 评论 -
使用 FastTunnel 做内网穿透远程计算机桌面服务器
FastTunnel是一款高性能跨平台内网穿透工具,使用它可以实现将内网服务暴露到公网供自己或任何人访问。对比市面上的其他内网穿透工具最大优势在于基于 dotnet 编写,提供二次开发扩展能力。本文将来告诉大家,在不做任何编程的情况下,通过 FastTunnel 工具,让我某台内网的 Windows 电脑,开启远程桌面服务,提供外网连入的能力本文的演示需要三台计算机设备,其中一台是服务器,服...原创 2021-07-05 00:30:16 · 1359 阅读 · 0 评论 -
dotnet C# 调用委托的 GetInvocationList 的对象分配
本文也叫跟着 Stephen Toub 大佬学性能优化系列,这是我从 Stephen Toub 大佬给 WPF 框架做性能优化学到的知识,在热路径下,也就是频繁调用的模块,如果调用了委托的 GetInvocationList 方法,那么将视委托的大小,每次创建不同大小的新数组对象,而在频繁调用的模块,将会创建大量的对象如以下代码的一个委托,当然对于事件来说也是如此 A...原创 2021-06-29 00:44:31 · 472 阅读 · 0 评论 -
dotnet C# 获取一个可用的端口的方法
本文来告诉大家如何可以获取一个可用的端口使用如下代码可以返回一个可用的端口 public static int GetAvailablePort(IPAddress ip) { TcpListener l = new TcpListener(ip, 0); l.Start(); int p...原创 2021-06-21 00:57:25 · 1389 阅读 · 0 评论 -
WPF 框架开发 调试和开发 XAML 构建过程的 PresentationBuildTasks 方法
阅读本文,你可以了解如何编写开发和调试 XAML 构建为 Baml 和 g.cs 文件的过程和工具。本文也适合想要了解 WPF 的 XAML 构建过程的开发者阅读,本文提供了可以断点调试 WPF 的 XAML 构建过程的方法和代码本文非新手友好,有大量构建和预编译知识,请在阅读本文之前自行了解这部分知识。更多请看 手把手教你写 Roslyn 修改编译在 WPF 中,构建 XAML 用的是...原创 2021-06-10 11:17:00 · 706 阅读 · 2 评论 -
让 dotnet 命令行输出作为英文的方法
在我的设备上,默认的 dotnet 命令行都是输出中文,如我输入 dotnet build 命令,里面的错误提示也是中文。在我想要和国外的小伙伴报坑时,如果里面有很多中文,我觉得他将会看不懂,从而不理我。本文来告诉大家如何让 dotnet 的命令行输出英文,从中文切换语言为英文方法需要有两步,第一步是设置环境变量,如果执行 dotnet build 命令,是在命令行里面执行,可以通过如下代...原创 2021-06-09 00:49:35 · 619 阅读 · 0 评论 -
通过 COM 读取 Office PPT 文件提示 COMException 错误码 0x80004005 可能原因
使用 COM 的方式可以调用本机的 Office 组件进行 PPT 以及 Word 和 Excel 等文件的读写,在打开文件的时候,如果提示 System.Runtime.InteropServices.COMException (0x80004005) 就意味着这是一个通用的错误,没有具体的原因调用 COM 组件,提示 System.Runtime.InteropServices.COME...原创 2021-05-11 00:42:56 · 2544 阅读 · 0 评论 -
dotnet Roslyn 通过读取 suo 文件获取解决方案的启动项目
本文来告诉大家一个黑科技,通过 .suo 文件读取 VisualStudio 的启动项目。在 sln 项目里面,都会生成对应的 suo 文件,这个文件是 OLE 格式的文件,文件的格式没有公开,本文的方法适合用在 VisualStudio 2019 上,对于其他版本的 VisualStudio 也许会不适合感谢 Simon Cropp 大佬提供的方法默认在 sln 解决方案文件的相同文件...原创 2021-04-29 00:38:37 · 411 阅读 · 0 评论 -
dotnet 运行时获取某类型的对象占用内存大小
本文将告诉大家一个黑科技方法在运行时动态获取对象本身占用空间,不包括对象引用的其他对象的空间大小的方法此方法是在开源仓库 sidristij/dotnetex: Gets size of .Net Framework objects, can change type of object to incompatible and can alloc .Net objects at unmana...原创 2021-04-28 00:50:24 · 754 阅读 · 0 评论 -
WPF 使用 Behavior 库辅助获取动态资源变更事件
在 WPF 开发中,可以使用 Behavior 库辅助,监听某个动态资源变更的事件,从而了解到是在哪个模块变更了动态资源,或者根据动态资源的变更而进行界面修改在 WPF 的动态资源机制里面,如果某个依赖属性给定了动态资源,那么在动态资源变更的时候,将会重新给属性赋值。通过这个机制,就可以在业务逻辑上,通过添加一个依赖属性,绑定到需要监听变更的动态资源上,那么这个依赖属性将会收到变更通知在...原创 2021-04-13 00:53:30 · 679 阅读 · 0 评论 -
dotnet 修复 ILLinkTasksAssembly 特性的值的计算结果无效
在加上 IL Link 的项目里面,在升级到 .NET 6 预览版,有一些项目将会构建不通过,或者有些 C++ CLI 项目加载失败。提示 元素 UsingTask 中“AssemblyFile”特性的值“$(ILLinkTasksAssembly)”的计算结果“”无效。原因就是 .NET 6 预览版里面,或者自己的设备上 ILLinkTasksAssembly 属性定义失效解决方法是先创...原创 2021-04-06 00:47:34 · 617 阅读 · 0 评论 -
dotnet 桌面端基于 AppHost 的配置式自动切换更新后的应用程序路径
在桌面应用端开发的时候,应用更新有很多实现方式,本文来告诉大家一个基于 dotnet core 或 .NET 5 的 AppHost 方式的配置式软件更新方法。这个方法的特点是入口的 Exe 文件可以固定不动,每次更新的时候只需要更新某个配置文件的路径,即可实现在应用启动的时候,读取配置文件的路径加载某个版本的软件跑起来。而且本文的方法不需要额外其他一个独立的启动进程,而是入口文件进程就是最终的 ...原创 2021-04-06 03:40:08 · 534 阅读 · 0 评论 -
dotnet 使用 ShowMeTheXAML 显示 WPF 的 XAML 控件内容
本文来告诉大家一个好用的控件库,这个控件库可以方便用在自己编写示例项目中使用。使用 ShowMeTheXAML 控件库可以将某段 XAML 内容作为字符串文本内容显示出来,方便让其他开发者看到界面以及对应的内容此控件库 ShowMeTheXAML 不仅支持 WPF 同时也支持 UNO 项目使用此控件的界面逻辑大概如下 <showMeTheXaml:XamlDisplay Uniq...原创 2021-04-01 00:55:09 · 1843 阅读 · 0 评论 -
VisualStudio 外部工具配合 dotnet tool 制作复制文件名工具
我在 VisualStudio 中,为了方便沟通,我需要复制当前文件的文件名,不包含本地的路径,但是我没有找到一个好的复制方式,每次都是复制完全的路径,然后再删除部分的功能。为了提高效率,于是我就自己使用 .NET Core 制作了一个 dotnet 工具,让 VisualStudio 的自定义外部工具配合 dotnet tool 加上传入参数实现通过按下快捷键即可复制当前标签页对应的文件名。实现...原创 2021-03-29 00:31:36 · 526 阅读 · 0 评论 -
dotnet 使用 TypeNameFormatter 库格式化输出反射泛型类型
默认的反射输出带泛型的类型,都会使用反引号的字符串。使用 TypeNameFormatter 库可以输出贴近代码的输出默认的类型的输出是和代码写的方法不相同,如获取 List<int> 类型的输出Console.WriteLine(typeof(List<int>));// 大概输出是 List`1[System.Int32]而我期望输出的是 List<i...原创 2021-03-26 00:41:14 · 455 阅读 · 0 评论 -
C# dotnet Thread.GetCurrentProcessorId 和 CurrentProcess.Id 的区别
使用 Thread.GetCurrentProcessorId 可以获取当前线程处理器的 Id 是哪个,而通过 Process.GetCurrentProcess().Id 可以获取当前进程的 Id 号,这两个的差别从上面描述就能看出更进一步的 Thread.GetCurrentProcessorId() 方法将会缓存处理器的 Id 因此前后两次线程如果处理器切换,此时拿到的值是不对的。在...原创 2020-06-30 01:42:29 · 767 阅读 · 1 评论 -
dotnet core 和 dotnet Framework 启动可执行文件的差别
在 Windows 下,使用 .NET Framework 构建出来的应用,可以只有一个可执行文件,在可执行文件里面包含了 IL 代码。使用 .NET Core 构建出来的应用,将会包含一个 Exe 可执行文件,和对应的 Dll 文件,而 IL 代码将放在 Dll 文件里面。那么使用 .NET Framework 和使用 .NET Core 所输出的 Exe 可执行文件有什么差别,本文将从文件格式以及启动过程两个方面给大家聊聊这两个的不同原创 2021-02-01 00:44:49 · 1084 阅读 · 0 评论 -
dotnet OpenXML SDK 形状的 rect Shape Text Rectangle 属性对文本框的坐标影响
在 Office 里面,对于形状,可以通过 a:rect 指定文本框的坐标原创 2021-02-03 00:28:05 · 467 阅读 · 0 评论 -
dotnet C# 将 Byte 二进制数组使用不安全代码快速转换为 int 或结构体数组
我在写一个有趣的 WPF 应用,我会不断收到从硬件发过来的数据,这些数据被使用 Byte[] 数组进行传输。我想要使用最快的方法转换为我的 int 数组或者转换为结构体数组,此时可以使用不安全代码的方式转换原创 2021-01-29 19:31:30 · 627 阅读 · 0 评论 -
dotnet 集成测试 SmartSql 存在静态量导致多个主机启动提示 Alias 已存在
在集成测试中,我采用单个进程开启多个主机,可以理解为一个用例开启一次主机。但是在我使用到 SmartSql 的功能时,我发现在一个主机关闭之后,再开启下一个主机,会因为使用了相同的别名而提示 SmartSql.Alias:[SmartSql] already exist 错误。本文告诉大家如何解决此问题默认的 dotnet 应用在主机销毁的时候,都会销毁自己的资源。而 SmartSql 没有...原创 2020-12-29 13:39:49 · 389 阅读 · 0 评论 -
dotnet C# 链表和字典的性能对比
本文来告诉大家我实际使用基准测试的在 .NET Core 3.1 的链表 LinkedList 和 Dictionary 字典的在元素增删的性能对比从算法分析上,其实字典和链表在时间上的性能是差不多的,甚至可以认为字典的速度会比链表更高。但是从空间上,如果一边增加元素一边删除元素那还是链表省空间。同时在字典空间满了之后,修改字典容量会比链表使用更多的时间以下是我用不够严谨的基准性能测试的数...原创 2020-12-24 00:35:40 · 1070 阅读 · 2 评论 -
dotnet 强签名下使用 InternalsVisibleToAttribute 给程序集加上友元
在 dotnet 里面,可以使用 InternalsVisibleToAttribute 特性,给程序集加上友元程序集,这样能让友元程序集访问到 internal 的程序。也就是说如果我有 A 和 B 两个程序集,我设置了 B 作为 A 的友元程序集 那么此时 B 程序集就能访问 A 程序集里面所有的 internal 成员。默认的友元设置只需要通过 InternalsVisibleToAttri...原创 2020-12-19 00:34:06 · 901 阅读 · 3 评论 -
读书笔记 dotnet 大对象堆和小对象堆
本文是读还没出版的伟民哥翻译的 .NET内存管理宝典 - 提高代码质量、性能和可扩展性 这本书的笔记原创 2020-09-26 08:50:15 · 695 阅读 · 0 评论 -
dotnet 里的那些锁 AutoResetEvent 用法
本文告诉大家在 dotnet 里的 AutoResetEvent 锁的用法原创 2020-09-26 08:47:15 · 567 阅读 · 0 评论 -
C# dotnet 的锁 SemaphoreSlim 和队列
本文主要是试验在顺序进入等待 SemaphoreSlim 的任务是否会按照顺序经过锁执行原创 2020-09-26 08:46:18 · 773 阅读 · 0 评论 -
dotnet core 通过修改文件头的方式隐藏控制台窗口
在带界面的 dotnet core 程序运行的时候就会出现一个控制台窗口,本文告诉大家使用最简单方法去隐藏控制台窗口原创 2018-09-30 18:37:11 · 2765 阅读 · 0 评论 -
dot net core 使用 usb
本文告诉大家如何在 dot net core 使用 usb原创 2018-09-03 16:54:58 · 2175 阅读 · 1 评论 -
dotnet core 添加 SublimeText 编译插件
因为 SublimeText 有很多插件都是使用 Py 写的,而我想使用 dotnet core 给 SublimeText 写一个编译插件,也就是在我使用 Markdown 的时候可以点击编译,将 Markdown 转 doc 或者做其他的原创 2018-08-29 08:54:50 · 740 阅读 · 0 评论 -
dotnet core 2.1 使用阶梯编译
在 dotnet core 2.1 可以使用阶梯编译的方法,从 dotnet framework 开始,在代码的所有方法在第一次进入的时候就需要使用 JIT 进行编译为本机的代码。可以看到代码是在第一次访问时编译的,所以编译的速度就影响了软件的运行速度翻译 2018-08-29 08:50:30 · 739 阅读 · 0 评论 -
C# 强转会不会抛出异常
最近遇到一个小伙伴问我,从一个很大的数强转,会不会抛出异常。实际上不会出现异常原创 2018-07-29 14:24:50 · 623 阅读 · 0 评论 -
dotnet 设计规范 · 抽象定义
严格来说,只有一个类被其他的类继承,那么这个类就是基类。在很多时候,基类的定义是提供足够的抽象和通用方法和属性、默认实现。在继承关系中,基类定义在上层抽象和底层自定义之间翻译 2018-07-05 14:05:21 · 911 阅读 · 0 评论 -
Windows Community Toolkit 3.0 新功能 在WinForms 和 WPF 使用 UWP 控件
本文告诉大家一个令人震惊的消息,Windows Community Toolkit 有一个大更新,现在的版本是 3.0 。最大的提升就是 WinForm 和 WPF 程序可以使用部分 UWP 控件 而且可以在 WPF 和 WinForms 使用微软最新 Edge 浏览器翻译 2018-06-01 09:06:45 · 5623 阅读 · 6 评论 -
dotnet core 编程规范
本文实际只是翻译 .NET Core foundational libraries 官方文档的编码风格翻译 2018-05-16 10:00:19 · 2651 阅读 · 0 评论 -
.net Framework 源代码 · ScrollViewer
本文是分析 .net Framework 源代码的系列,主要告诉大家微软做 ScrollViewer 的思路,分析很简单。看完本文,可以学会如何写一个 ScrollViewer ,如何定义一个 IScrollInfo 或者给他滚动添加动画原创 2018-04-29 09:56:11 · 1046 阅读 · 0 评论 -
Nuget 通过 dotnet 命令行发布
在开发完成一个好用的轮子就想将这个轮子发布到 nuget 让其他小伙伴可以来使用,但是 nuget.org 的登陆速度太慢,本文介绍一个命令行发布的方法,通过命令行发布的方法可以配合 Jenkins 自动打包原创 2018-10-19 09:15:51 · 1901 阅读 · 0 评论 -
win10 uwp 使用 asp dotnet core 做图床服务器客户端
本文告诉大家如何在 UWP 做客户端和 asp dotnet core 做服务器端来做一个图床工具原创 2018-10-31 14:19:06 · 2658 阅读 · 8 评论 -
asp dotnet core 从 Frp 获取用户真实 IP 地址
我在本地开一个服务,然后通过 Frp 让小伙伴可以在外网访问我的 API 连接,但是直接通过 RemoteIp 拿到的是本地的地址。本文告诉小伙伴如何通过 Frp 可以拿到用户的真实 IP 地址原创 2019-07-29 08:29:49 · 1177 阅读 · 0 评论 -
asp dotnet core 通过图片统计 csdn 用户访问
在 csdn 的访问统计里面,只能用 csdn 提供的访问统计,因为在 csdn 中不支持在博客加上 js 代码,也就是无法使用友盟等工具统计通过在 asp dotnet core 创建一个图片链接的方式,将这个链接作为图片放在 csdn 的博客,可以在链接被访问的时候统计用户访问原创 2019-07-02 19:26:11 · 557 阅读 · 0 评论 -
asp dotnet core 图片在浏览器没访问可能原因
我写了一个项目用来广告就用到广告的图片,但是广告的图片放在博客的链接无法访问,连我的方法都没有调用,而我尝试网页直接访问图片链接是可以访问的,最后找到原因是广告插件禁用了图片访问原创 2019-05-21 11:26:09 · 2370 阅读 · 0 评论 -
dotnet core 使用 CoreRT 将程序编译为 Native 程序
现在微软有一个开源项目 CoreRT 能通过将托管的 .NET Core 编译为单个无依赖的 Native 程序这个项目现在还没发布,但是能尝试使用,可以带来很多的性能提升原创 2019-05-21 11:30:33 · 2203 阅读 · 3 评论