使用示例: package main import ( "fmt" "os" "os/signal" ) func main() { // Set up channel on which to send signal notifications. // We must use a buffered channel or risk missing the signal // if we're not ready to receive when the signal is sent. c := make(chan os…

2022年11月20日 0条评论 4678点热度 1人点赞 痴者工良 阅读全文

使用 Go 中常用的 log 方法: Print/Printf/Println : 打印日志信息 Panic/Panicf/Panicln : 打印日志信息后,以拼装好的字符串为参数调用 Panic Fatal/Fatalf/Fatalln : 打印日志信息后,os.Exit(1) 退出程序 New 一个 Logger 的定义如下: func New(out io.Writer, prefix string, flag int) *Logger { return &Logger{out: out, pref…

2022年11月20日 0条评论 2292点热度 0人点赞 痴者工良 阅读全文

首先在要被执行的 类型 加上参数: [Option(Description = "CloudEvents 'source' (default: urn:example-com:mysource:abc)", LongName = "source", ShortName = "s")] private string Source { get; } = "urn:example-com:mysource:abc"; [Option(Description = "CloudEvents 'type' (default: …

2022年11月19日 0条评论 2176点热度 0人点赞 痴者工良 阅读全文

引入这个库: YamlDotNet 配置示例: services.AddYamlDotNetSerializer( serializer => serializer .IncludeNonPublicProperties() .WithTypeConverter(new OneOfConverter()) .WithEmissionPhaseObjectGraphVisitor(args => new Cha[......]继续阅读

2022年11月19日 0条评论 2406点热度 0人点赞 痴者工良 阅读全文

从 ServerlessWorkflow 中学习到一个有趣的 NewtonsoftJson 配置。 var newtonsoftJsonDefaultConfig = (JsonSerializerSettings settings) => { settings.ContractResolver = new NonPublicSetterContractResolver(); settings.NullValueHandling = NullValueHandling.Igno[......]继续阅读

2022年11月19日 0条评论 1969点热度 1人点赞 痴者工良 阅读全文

ISO8601 规定了时间格式。 在 Go 语言中,Duration 就实现了这种时间格式。 package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t) } 输出: 2022-11-19 02:59:28.201938781 +0000 UTC m=+0.000051897 在 C# 中,可以通过引用 Iso8601DurationHelper 来实现 Duration。 var duration = Durat…

2022年11月19日 0条评论 3166点热度 0人点赞 痴者工良 阅读全文

背景 突然了解到有个项目叫 ServerlessWorkflow 。 https://github.com/serverlessworkflow 这个项目有什么用,并不重要,重要的是可以从这里了解到云原生中间件开发的一些现状和需要学习的知识。 因为这个项目是 CNCF 项目,里面使用到的规范、思想、协议,也可以很好地体现当前 CNCF 的趋势。 ServerlessWorkflow 是一个 CNCF 发起的工作流协议,然后现在使用了 C# 实现了这个协议。 https://github.com/serverless…

2022年11月19日 0条评论 2322点热度 1人点赞 痴者工良 阅读全文

首先打开 /etc/kubernetes/pki 目录,里面会有很多证书。 执行命令查看当前证书允许通过哪些地址访问 APIServer: openssl x509 -in apiserver.crt -noout -text|grep -A 2 'Alternative' 可以看到证书允许的都是些内网 IP、本地 DNS 等。 备份好当前的密钥和客户端证书: mv apiserver.crt apiserver.crt.bak mv apiserver.key apiserver.key.bak 修改 kubea…

2022年11月18日 0条评论 2286点热度 0人点赞 痴者工良 阅读全文

示例代码如下: void Main() { string pName = "程序的名称"; Process[] temp = Process.GetProcessesByName(pName); if (temp.Length > 0) { IntPtr handle = temp[0].MainWindowHandle; SwitchToThisWindow(handle, true); } } [DllImport("user32.dll")] public static extern void Swit…

2022年11月16日 0条评论 2160点热度 0人点赞 痴者工良 阅读全文

创建一个元素: <Label x:Name="Label1" Text="111" VerticalOptions="Center" HorizontalOptions="Center" /> <Button Text="点击" Clicked="OnButtonClicked"></Button> 定义一个模型,继承 INotifyPropertyChanged。 public class A : INotifyPrope[......]继续阅读

2022年11月14日 0条评论 2090点热度 0人点赞 痴者工良 阅读全文

package main import ( "context" "fmt" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "os" ) func main() { kubeconfig := "config" config, err := clientcmd.BuildConfigFromFlags("", kubeconfig) if err !=…

2022年11月13日 0条评论 1454点热度 0人点赞 痴者工良 阅读全文

在下面这个示例中,定时器每 1 秒向 channel 发生一次消息。当数量达到 10 次时,会自动终止。 func main() { fmt.Println("Commencing countdown.") tick := time.Tick(1 * time.Second) for countdown := 10; countdown > 0; countdown-- { v := <-tick fmt.Println(countdown, v) } } 但是,如果需要中途取消,则需要使用 selec…

2022年11月13日 0条评论 1828点热度 0人点赞 痴者工良 阅读全文

MYSQL 数据库事务支持以下几种隔离级别: Read Uncommitted(读取未提交内容) Read Committed(读取提交内容) Repeatable Read(可重读) Serializable(可串行化) 每个会话中,都可以设置事务的隔离级别,如果不设置,就会使用数据库默认的隔离级别。 查询数据库默认隔离级别: show variables like 'transaction_isolation'; SELECT @@transaction_isolation 在当前会话中,设置事务的隔离级别: …

2022年11月11日 0条评论 1672点热度 0人点赞 痴者工良 阅读全文

问题背景 在 Windows 中,开发的应用可以使用 app.manifest 资产文件配置程序启动时,使用何种角色权限启动。 效果如下: 正常情况下,在 app.manifest 加上以下配置即可: 如果项目中没有这个文件,可以在项目中新建项-清单文件。 <trustInfo xmlns='urn:schemas-microsoft-com:asm.v2'> <security> <requestedPrivileges xmlns='urn:schemas-microsoft-co…

2022年11月10日 0条评论 2735点热度 0人点赞 痴者工良 阅读全文

[TOC] 背景 其实,规划这篇文章有一段时间了,但是比较懒,所以一直拖着没写。 最近时总更新太快了,太卷了,所以借着 .NET 7 正式版发布,熬夜写完这篇文章,希望能够追上时总的一点距离。 本文主要介绍如何在 .NET 和 Go 语言中如何生成系统(Windows)动态链接库,又如何从代码中引用这些库中的函数。 在 .NET 部分,介绍如何使用 AOT、减少二进制文件大小、使用最新的 [LibraryImport] 导入库函数; 在 Go 语言部分,介绍如何使用 GCC 编译 Go 代码、如何通过 syscal…

2022年11月10日 0条评论 1890点热度 1人点赞 痴者工良 阅读全文

背景 因为本地开发时,内网的 https 是不安全的 https。 会导致 js 发不出请求。 为了让 https 安全,这里实现了本地 localhost 自动生成证书以及安装的过程。 写代码 生成证书使用的是 .NET 自带的库,不需要引入第三方包。 using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Text; 生成证书的方法参考 https://github…

2022年11月9日 0条评论 6392点热度 4人点赞 痴者工良 阅读全文

Fluentd 在 Kubernetes 下部署时,需要使用 fluentd-daemonset-elasticsearch-rbac.yaml 文件,里面配置了 RABC 权限等,但是启动起来后,查看 Fluentd 日志,发现 unread ,原因是日志位置的问题。 原版日志收集配置: volumeMounts: - name: varlog mountPath: /var/log # When actual pod logs in /var/lib/docker/containers, the followi…

2022年11月9日 0条评论 1808点热度 0人点赞 痴者工良 阅读全文

地址: https://devblogs.microsoft.com/dotnet/configuring-https-in-asp-net-core-across-different-platforms/ 创建一个 https.config 文件: [ req ] default_bits = 2048 default_md = sha256 default_keyfile = key.pem prompt = no encrypt_key = no distinguished_name = req_distin…

2022年11月7日 1条评论 1990点热度 0人点赞 痴者工良 阅读全文

默认情况下,MAUI 全屏的时候,任务栏会被屏蔽掉。 参考解决方法:https://github.com/dotnet/maui/issues/5478 获取窗口对象: IntPtr nativeWindowHandle = WinRT.Interop.WindowNative.GetWindowHandle(window); WindowId win32WindowsId = Win32Interop.GetWindowIdFromWindow(nativeWindowHandle);[......]继续阅读

2022年11月7日 0条评论 2247点热度 1人点赞 痴者工良 阅读全文

由于新版本的 docker 跟 kubernetes 对系统有要求,因此首先要做以下操作,确保 docker、kubelet 可以正常工作。 首先修改或添加 /etc/docker/daemon.json,内容替换如下: { "registry-mirrors": ["https://94zlnekp1.mirror.aliyuncs.com"], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "1" }, "exec…

2022年11月6日 0条评论 2724点热度 0人点赞 痴者工良 阅读全文
14567827