随笔分类 - .net
.net 系列文章
摘要:OpenAI全身是有原生API的,也有一些开源的库,不过都是简单对原生API的封装,这个系统主要通过SemanticKernel来使用OpenAI。 SemanticKernel简单称SK,是一个轻量级的使用OpenAI和Azure AI的SDK。利用SK可以更轻松,便捷的使用AI的能力,同时,它还
阅读全文
摘要:chatGPT出来也半年多了,在Visual Studio上的ChatGPT工具出来一些了,最早的应该是GitHub Copilot了,今天我们分别来说三个在VS2022上使用的ChatGPT工具:GitHub Copilot,GitHub Copilot Chat 和 Visual chatGPT
阅读全文
摘要:在下面的文章中,用到反射来设计医保接口,因为国内的医保接口有一个特点,就是接口基本是统一的,接中传的数据是有一定规律的,这样方便对接后业务级的升级扩展,所以在对接医保接口时,就很容易用OOP来设计一个微框架来对应。 用反射开发医保接口 桂素伟,公众号:桂迹 .NET架构小技巧(3)——反射,架构人员
阅读全文
摘要:有几天没有更新文章了,一方面因为感觉GPT出来了,写什么都不香了,非得写点关于GPT的才有资格出来和大家见面;另一方面,确实最近一段时间也在全面拥抱GPT:学习,总结,思考。所以今天就想随心所欲地说说GPT使用感受。 其实GPT出来没多长时间,就注册账号,并体验了网页版,更多是觉得有趣,智能,属于看
阅读全文
摘要:提示:本篇不适合手机阅读,主要为了提供代码实现。 为了减速少大的Excel文件在内存中驻留,使用流的方式,边查询边组装,边下载文件相对来说是一个好的方式,下面是基于ClickHouse数据源的方式,下载100万条记录的处理方式,本地测试,内存只有100多M的使用,下载完后就会释放。 注:下面的代码仅
阅读全文
摘要:在VS17.5中,加入了一个.http文件,应该和你想的一样,就是一个存放请求的文件,关键是他能执行请求,很像curl。不过市面上相似的工具有很多,比如Postman就做的很好了,那为什么VS还要引入呢? 我的简单理解,虽然Postman好用,但毕竟和VS中的源码是分离的,即使Postman等工具有
阅读全文
摘要:在开发asp.net core时,通常会在appsettings.json中配置信息,这些信息都是以一个json的格式存储,在程序中通过Options的方式来绑定实体类使用,如下面的APIConfig和实体类。 配置文件: { "Logging": { "LogLevel": { "Default"
阅读全文
摘要:这节我们主要介绍ASP.NET Core Identity认证,认证是决定用户是否能够成功登录应用程序的一个过程,用户通过提供自己的用户名和密码来证明他们自己是真实用户,当登录成功时, Identity 认证用户并且赋予访问ASP.NET Core 应用程序安全资源 1、ASP.NET Core I
阅读全文
摘要:在这节中我们将研究ASP.NET Core Identity中用户名、邮件、密码策略,解释一下Identity默认提供的策略以及如何实现自定义策略,最后我们针对用户名、邮件、密码实现客户自定义策略 1、ASP.NET Core Identity密码策略 ASP.NET Core Identity默认
阅读全文
摘要:这节我们主要演示在ASP.NET Core Identity中创建、修改、删除、查询用户 1、ASP.NET Core Identity UserManager 类 UserManager类位于Microsoft.AspNetCore.Identity命名空间中,我们可以使用该类管理数据库中的用户。
阅读全文
摘要:ASP.NET Core Identity提供给我们一组工具包和API,它能帮助我们应用程序创建授权和认证功能,也可以用它创建账户并使用用户名和密码进行登录,同时也提供了角色和角色管理功能。ASP.NET Core Identity使用SQL Server/第三方数据库存储用户名和密码,角色和配置数
阅读全文
摘要:.NET8的第一个预预览版发布了,又开启了一波新技术的学习和研究。简单过了一下.NET8 Preview1,中间有两个功能是我的痛点,先睹为快。 在项目中,数据从前端UI到后端(后端也分为好几层),再到数据库端,每个端或层的命名规则不尽相同,所以在端之间的数据项命名转换就个痛点,C#中,帕斯卡命名与
阅读全文
摘要:很多时候,会判断一个值是否为数值类型,数值类型是可以进行算术运算的,表示格式也比较统一,所以在做通用功能时会用到。下面给出了几种用法。 第一版:通用用法,设置具体类型逐一进行判断,这种做法可以灵活设置类型,缺点也是想增加类型,也得人工增加。 bool IsDig(object t) => t swi
阅读全文
摘要:使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。 https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts
阅读全文
摘要:string是开发过程中,使用频度最高的类型之一,所以在构建类型时作了很多处理,如“不可变性”,“保留性”等特点。 string的常量是在""引号中进行赋值的。 var str1 = "这是一段文字"; Console.WriteLine(str1); 之后,为了字符串的格式化,引入了$""定义方式
阅读全文
摘要:访问修符,是OOP中一个很重要的知识点。在C#中,class(类)的访问修饰符有public和internal两种。 类成员(属性,方法,字段,事件等)的访问修饰符public,internal,protected,private,internal protected,protected priva
阅读全文
摘要:从System.Text.Json诞生,就在努力增加功能和提升性能,在.NET7中,又带来了多态的适配。 下面是一个父类Customer,两个子类,WechatCustomer和LineCustomer。 public class Customer { public string Name { ge
阅读全文
摘要:在C#中,有int16,用short来定义;有int32,用int定义;用int64,用long来定义。在.NET7中,添加了int128,和unint128,位数更大的整型。 var i16 = short.MaxValue; Console.WriteLine($"Int16(short):{i
阅读全文
摘要:还是先看看C#中属性的这定义,在初始化和访问上有哪些方式,就能看出required属性有什么不一样的地方了。 属性,是封装字段的,通过get和set访问器可以很好地验证数据的有效性。 public record Order_00 { public Guid Id { get; set; } priv
阅读全文
摘要:下面汇总了一些VisualStudio“靓点”,有的可能你已经天天在用,用来提升生产力了,不过仍希望本篇对你有所收获。 数值类型格式化 为了看大数值类型方便,C#可以用下划线来分隔一组一组,方便查看。 转时间格式提示 当把时间转成一种格式时,ToString()的参数可以提示这些格式的具体含义。 正
阅读全文