Fork me on GitHub
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页
摘要: WinForm程序只能运行在Windows上,即使是基于.NET5,6,7也一样。因为WinForm的UI层对接的底层API是基于Windows的。 用VisualStudio创建一个WinForm应用很简单,建议使用非.NET Framework版,因为.NET Framework微软渐渐不支持了 阅读全文
posted @ 2022-12-10 10:28 桂素伟 阅读(546) 评论(0) 推荐(0)
摘要: (注:本篇用点长,有点绕,耐心浏览) C#中类型分为值类型和引用类型,值类型存储在堆栈中,是栈结构,先进后出,引用类型存储在托管堆中。接下来用不安全代码的地址,来看一下值类型和引用类型的存储。 项目文件 C#中使用不安全代码需要在项目文件中添加AllowUnsafeBlocks配置。 <Projec 阅读全文
posted @ 2022-12-09 19:15 桂素伟 阅读(94) 评论(0) 推荐(0)
摘要: 前几在用MiniAPI时还想没有比较优雅的缓存,这不,Preivew6就带来了。使用起来很简单,注入Sevice,引用中间件,然后在Map方法的后面跟CacheOutput()就ok了,CacheOutpu也有不同的参数,可以根据每个方法定制,当然也可以有全局配置,在添加Service时进行统一配置 阅读全文
posted @ 2022-12-09 19:11 桂素伟 阅读(91) 评论(0) 推荐(0)
摘要: 最近在做一个简单的风控,其中有一块需求是这样的,当主请求参数到达后,会根据这些参数,看调起几个并发规则,这些规则各自有自己的验证逻辑,每个规则执行时间长短都不确定,当规则 执行完后,返回主请求,主请求根据规则验证返回结果,从而决定是否立即response请求,但其他后到的规则 ,要继续完成后面验证, 阅读全文
posted @ 2022-12-09 19:08 桂素伟 阅读(50) 评论(0) 推荐(0)
摘要: 之前自己实现过一个CSRebot命令行工具,现在用System.CommandLine来实现,就规范和省事多了,虽然System.CommandLine还没有正式发布,但它的实现思路还是很不错的。 下面的代码只简单实现了MSSQL库生成C#体类的功能,其他库或其他语言的实体类生成,大家可以自己实现一 阅读全文
posted @ 2022-12-09 19:04 桂素伟 阅读(39) 评论(0) 推荐(0)
摘要: Preview5对策略验证的方式没有改变,只不过内置了Token的生成,和《.NET6之MiniAPI(十):基于策略的身份验证和授权》的验证方式基本相同,都是生成和验证使用的验证参数要一致,用继承AuthorizationHandler的子类来作每次请求的验证。 在具体的路由上,用RequireA 阅读全文
posted @ 2022-12-06 02:16 桂素伟 阅读(78) 评论(0) 推荐(0)
摘要: 在.NET7的Preview5中,优化了asp.net core中的JWT验证,不用像以前繁琐了,更重要的是带来了一组生成Token的工具,可以让开发人员或测试人员不需登录获取Token,而达到测试的目的。 创建项目 现在来看一下怎么使用,首选创建项目,/是无验证,/myhome是有验证 var b 阅读全文
posted @ 2022-12-06 02:11 桂素伟 阅读(243) 评论(0) 推荐(0)
摘要: .NET Preview5中,给MiniAPI带来了一个参数绑定的功能,看到这个功能,我一下子就开心了,因为它提供了一个把松散的传入数据或注入功能耦合在一起的能力,并且可以根据自己的需求自由组合,结合上原来的Fromxxx(Name="")]使用,尤其和谐。 看一下下面的例子,如果每个请求都带有X- 阅读全文
posted @ 2022-12-06 02:01 桂素伟 阅读(64) 评论(0) 推荐(0)
摘要: 前两篇说到Command和Option,这篇说说Argument。Argument的用法和Option很像,只是他的构造和属性有些差别,再就是在运行输入时有区别,接下来看看实现。 一个参数 //创建根命令 var rootCommand = new RootCommand("这是一个命令行工具:旦猫 阅读全文
posted @ 2022-12-06 01:56 桂素伟 阅读(80) 评论(0) 推荐(0)
摘要: 前一篇简单看了一下CommandLine命令的使用,其实在一个命令行工具中,还有一个重要的点,那就是选项——Option,选项是为命提供参数,就好像C#中方法,Command就像方法,Option就像方法的参数,说到参数就有参数类型,形参(形式参数名称),同理,CommandLine也有,看一个带O 阅读全文
posted @ 2022-12-06 01:49 桂素伟 阅读(141) 评论(0) 推荐(0)
摘要: 记得之前出过几篇.net tool工具的文章,当时的做法是所有工具的语法分析全部自己解释,自己执行,语法的解释占了大部分时间,反而工具的功能被弱化了。 其实微软有一个CommandLine框架在缓慢的发展着,至今都没有正式发布,那就是System.CommandLine。可以通过NuGet来引用Sy 阅读全文
posted @ 2022-12-06 01:43 桂素伟 阅读(132) 评论(0) 推荐(0)
摘要: (注:本文参照 NickChapsas的Attributes get a feature long-overdue in C# 11) 今天看一个泛型特性的例子,这个功能在C#11才受支持。 在asp.net core mvc中,可以给action添加filter,达到拦截作用,实现如下: publ 阅读全文
posted @ 2022-12-06 01:37 桂素伟 阅读(44) 评论(0) 推荐(0)
摘要: 在asp.net mvc或asp.net miniapi中,有过滤器,可以在请求前或后增加一层,达到验证,过滤等作用,如果在Service的方法前后加一层呢?这里介绍一下Castle.DynamicProxy的用法。 首先引入 Castle.Core 实现代码相对轻量: using Castle.D 阅读全文
posted @ 2022-12-05 20:54 桂素伟 阅读(139) 评论(1) 推荐(0)
摘要: 当年在做go时,很羡慕它的时间有微秒,纳秒,在做性能优化时,能很小颗粒度的查看引入方法执行的时间,当时.net的DateTime只有毫秒(虽然也有别的办法获取)。现在,在最新的.NET7 Preview4中,DateTime也有微秒和纳秒了,倍感亲切。 纳秒在百位上,没有十位和个位,但这也说明.NE 阅读全文
posted @ 2022-12-05 20:48 桂素伟 阅读(68) 评论(0) 推荐(0)
摘要: 为了更好的测试,更好的性能,Preview4带了一个新的请求返回值类型,这个新的类型中封装了所有的Http请求返回状态函数,还包括了返回成功后的几种数据类型,下面列举了几个常用的类型: app.MapGet("/test_ok", () => { return TypedResults.Ok<Dat 阅读全文
posted @ 2022-12-05 20:43 桂素伟 阅读(132) 评论(0) 推荐(0)
摘要: 这篇是“闻(看)香(码)识(学)女(技)人(术)”。 这也是一个有意思的功能,路由分组,啥也不说了,看代码看结果: using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.OpenApi; var builder 阅读全文
posted @ 2022-12-05 20:37 桂素伟 阅读(111) 评论(0) 推荐(0)
摘要: 在MiniAPI系列中,《.NET6之MiniAPI(十八):OpenAPI swagger》介绍了swagger在MiniAPI框架中的使用,当时留下很多不足,随着.NET7 Preview4的推出,这方面得到了很大的改进,我还是使用“十八”这篇文章的案例。 如果想参看原来文章,见下面引用: 《. 阅读全文
posted @ 2022-12-05 20:32 桂素伟 阅读(127) 评论(0) 推荐(0)
摘要: 一觉醒来,发现微软带来了.NET7 Preview4的更新,本次更新关于MiniAPI的还不少,难以掩饰的喜悦心情,促使我尽快把这个消息分享给大家,那下来我们看一下一共带来了哪些关于MiniAPI的更新: 返回值带来了TypedResults,这样进一步地丰富了返回值的多样性: app.MapGet 阅读全文
posted @ 2022-12-04 16:39 桂素伟 阅读(77) 评论(0) 推荐(0)
摘要: .net core下迎来了WCF——CoreWCF1.0,做了一个最初级的Demo,尝尝鲜。 首先在NuGet中引入下面两个包 CoreWCF.Http CoreWCF.Primitives 本demo是用WCF实现一个ToDoList的几个服务端方法,然后用创建客户端服务调用,代码如下: WCF服 阅读全文
posted @ 2022-12-04 16:28 桂素伟 阅读(520) 评论(0) 推荐(0)
摘要: 有时,为了省事,我们也可以把窗体的控件注入到ServiceCollection中,在razor中订阅事件,这样就省了中间的桥梁,直接用控件当桥梁,下面以一个Button和Timer为例,来展示使用方式。 本例是把Button和Timer注入到ServieCollection,在razor中通过引用注 阅读全文
posted @ 2022-12-04 16:20 桂素伟 阅读(234) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页