草庐IT

dotnet-tool

全部标签

VMware Tools和open-vm-tools的安装与使用:解决虚拟机不全屏和无法传输文件的问题

镜像下载、域名解析、时间同步请点击阿里云开源镜像站在VMwareWorkstation上新建了一个虚拟机,安装了Ubuntu10.04版本的iso,创建好后发现了两个问题:(1)虚拟机界面并不能填充满整个屏幕,使用起来十分反人类。(2)主机和虚拟机不能随意相互复制粘贴,无论是文件还是剪贴板。一、安装VMwareTools首先我们安装一下官方的工具VMwareTools,但是软件中VMwareTools的安装图标是灰色的。这是因为VMware会自动检测CD镜像文件中的VMwareTools安装包,检测不到时就会显现灰色无法安装。关闭虚拟机,打开虚拟机设置。将虚拟机设置中的CD/DVD、CD/DV

dotnet 读 WPF 源代码笔记 为什么自定义的 UserControl 用户控件不能跨程序集继承

从设计上,用户控件UserControl就不是一个合适用来多次继承的类型,更不要说进行跨程序集继承自定义的UserControl用户控件。对于大部分的用户控件来说,都是采用组合现有的控件来实现的功能,本身应该被当成一个模块来进行使用。在WPF框架里面,从框架层阻止了开发者对自定义的UserControl用户控件跨程序集继承的逻辑,一旦尝试进行跨程序集继承,将在运行时抛出异常。本文将从源代码的角度告诉大家WPF框架是如何阻止跨程序集继承先来写一些演示使用的代码,新建一个WpfLibrary1项目用来存放自定义的用户控件。在WpfLibrary1项目里面新建一个UserControl1.xaml的

dotnet 读 WPF 源代码笔记 为什么自定义的 UserControl 用户控件不能跨程序集继承

从设计上,用户控件UserControl就不是一个合适用来多次继承的类型,更不要说进行跨程序集继承自定义的UserControl用户控件。对于大部分的用户控件来说,都是采用组合现有的控件来实现的功能,本身应该被当成一个模块来进行使用。在WPF框架里面,从框架层阻止了开发者对自定义的UserControl用户控件跨程序集继承的逻辑,一旦尝试进行跨程序集继承,将在运行时抛出异常。本文将从源代码的角度告诉大家WPF框架是如何阻止跨程序集继承先来写一些演示使用的代码,新建一个WpfLibrary1项目用来存放自定义的用户控件。在WpfLibrary1项目里面新建一个UserControl1.xaml的

dotnet 6 精细控制 HttpClient 网络请求超时

本文告诉大家如何在dotnet6下使用HttpClient更加精细的控制网络请求的超时,实现HttpWebRequest的ReadWriteTimeout功能本文将介绍如何在HttpClient控制以下网络行为的超时网络连接超时网络请求超时网络响应超时网络总超时在dotnet6下HttpClient只是一个包装类,实际的网络请求的核心实现是通过SocketsHttpHandler实现的,详细请看dotnet6HttpClientHandler和SocketsHttpHandler有什么差别-lindexi-博客园在HttpClient里,由于HttpClient自带的Timeout碰触不到底层

dotnet 6 精细控制 HttpClient 网络请求超时

本文告诉大家如何在dotnet6下使用HttpClient更加精细的控制网络请求的超时,实现HttpWebRequest的ReadWriteTimeout功能本文将介绍如何在HttpClient控制以下网络行为的超时网络连接超时网络请求超时网络响应超时网络总超时在dotnet6下HttpClient只是一个包装类,实际的网络请求的核心实现是通过SocketsHttpHandler实现的,详细请看dotnet6HttpClientHandler和SocketsHttpHandler有什么差别-lindexi-博客园在HttpClient里,由于HttpClient自带的Timeout碰触不到底层

dotnet 使用 ConfigureAwait.Fody 库设置默认的 await 同步上下文切换配置

在dotnet里面,使用await进行异步逻辑,默认是会尝试切换回调用await的线程同步上下文。这个机制对于大多数的上层应用来说都是符合逻辑且方便的逻辑,例如对于带UI线程的WPF或WinForms等应用,基础开发的执行逻辑基本都是在UI线程上,此时进入一次await再出来,期望如果是进入await之前是在UI线程,那么执行await完成之后,退出的代码也能在UI线程执行,正好这就是dotnet的默认行为。但是对于库开发者来说,情况就反过来的,库的开发者大部分时候更期望默认不要切换回调用方的线程,采用Fody的ConfigureAwait.Fody库,可以控制此默认的行为。本文将告诉大家如何

dotnet 使用 ConfigureAwait.Fody 库设置默认的 await 同步上下文切换配置

在dotnet里面,使用await进行异步逻辑,默认是会尝试切换回调用await的线程同步上下文。这个机制对于大多数的上层应用来说都是符合逻辑且方便的逻辑,例如对于带UI线程的WPF或WinForms等应用,基础开发的执行逻辑基本都是在UI线程上,此时进入一次await再出来,期望如果是进入await之前是在UI线程,那么执行await完成之后,退出的代码也能在UI线程执行,正好这就是dotnet的默认行为。但是对于库开发者来说,情况就反过来的,库的开发者大部分时候更期望默认不要切换回调用方的线程,采用Fody的ConfigureAwait.Fody库,可以控制此默认的行为。本文将告诉大家如何

dotnet 6 推荐一个可代替 .NET Remoting 的 IPC 库

本文将来和大家推荐一个基于最友好MIT协议的完全在GitHub上开源的,可代替.NETRemoting的IPC本机多进程通讯库本机内多进程通讯IPC不同于跨设备系统的RPC通讯方式,大多数的IPC通讯都需要处理复杂的用户端环境问题。对于RPC通讯来说,大部分时候,服务端都在开发者完全管控的环境下运行。但IPC通讯则无论是服务端还是客户端都可能是在用户端运行的。然而用户端上,无论是系统还是其他环境都是十分复杂的,特别是在国内的,魔改的系统,凶狠的杀毒软件,这些都会让IPC通讯受到非预期的打断传统的dotnet系的IPC手段有很多个,提供给开发使用的顶层框架也有很多,如.NETRemoting和W

dotnet 6 推荐一个可代替 .NET Remoting 的 IPC 库

本文将来和大家推荐一个基于最友好MIT协议的完全在GitHub上开源的,可代替.NETRemoting的IPC本机多进程通讯库本机内多进程通讯IPC不同于跨设备系统的RPC通讯方式,大多数的IPC通讯都需要处理复杂的用户端环境问题。对于RPC通讯来说,大部分时候,服务端都在开发者完全管控的环境下运行。但IPC通讯则无论是服务端还是客户端都可能是在用户端运行的。然而用户端上,无论是系统还是其他环境都是十分复杂的,特别是在国内的,魔改的系统,凶狠的杀毒软件,这些都会让IPC通讯受到非预期的打断传统的dotnet系的IPC手段有很多个,提供给开发使用的顶层框架也有很多,如.NETRemoting和W

dotnet 6 为什么网络请求不跟随系统网络代理变化而动态切换代理

本文记录在dotnet6的网络和在.NETFramework的行为的变更。在dotnet6下,默认的网络请求在系统网络代理变更的时候,是不会动态切换代理的。例如在应用运行进行网络通讯之后,打开Fiddler抓包,此时将会发现Fiddler抓不到包,只有在应用重启之后才能抓到。或者是开着Fiddler抓包,然后退出Fiddler之后应用就断网了如此行为是因为Fiddler抓包其中的一个原理就是设置系统的本机网络代理,而由于dotnet6下,应用不会动态切换代理,如果在应用启动进行网络通讯之后,再打开Fiddler抓包,在Fiddler打开之后,将会修改系统的本机网络代理,但是dotnet6的应用