本页 12 篇文章
StarBloghttps://blog.deali.cn/blog/starblog-v26-swagger-integration-api-docs
.../NSwag 初步使用 为了保证 Program.cs 代码整洁,我们在 StarBlog.Web/Extensions 里面创建 ConfigureSwagger 类 c# public static class ConfigureSwagger { public static void AddSwagger(this IServiceCollection serv...
StarBloghttps://blog.deali.cn/blog/csharp-catspider-development-notes
...美滋滋。不过有些网站的采集比较麻烦,有反爬机制,这方面就不如python了,因为python的轮子很多,我直接找别人做的整合一下就好了,毕竟爬虫不是本项目的主要内容,不能浪费太多时间和精力。那么怎么把C#和python的模块整合在一起呢,emmm当然是RPC了,不过在python爬虫里面加个Flask来调用也行,不过数据交换性能就要打很大折扣了。 有点偏题了,继续记录.net core爬虫~...
StarBloghttps://blog.deali.cn/blog/csharp-attributes-vs-py-ts-decorators
前言 最近成功把「前端带师」带入C#的坑~~(实际是前端带师开始从cocos转unity游戏开发了)~~ 某天,「前端带师」看到这段代码后问了个问题:[这个是装饰器]? c# [HttpGet] public Response Get() { return ... } 我第一反应觉得不是,这玩意在C#中叫“特性”(英文名Attribute,下文统称为特性),在Jav...
StarBloghttps://blog.deali.cn/blog/asp-net-core-authentication-intro
...laimsIdentity的属性RoleClaimType会告诉ASP.NET Core哪个Claim存储了用户的角色信息。 比如某个Controller需要管理员角色才能访问: c# [Authorize(Roles="管理员")] 可以指定多个角色都可以访问,多个角色间用逗号分隔: c# [Authorize(Roles="人力经理,财务")] 如果...
StarBloghttps://blog.deali.cn/blog/starblog-page-development-article-list-6
...后如果切换ORM会带来额外的重构成本。 打开StarBlog.Data项目,我们来写一个扩展方法,新增Extensions目录,在里面新增ConfigureFreeSql.cs c# using FreeSql; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjec...
StarBloghttps://blog.deali.cn/blog/c-generate-markdown-toc-tree
前言 之前我写了一篇关于C#处理Markdown文档的文章:C#解析Markdown文档,实现替换图片链接操作 算是第一次尝试使用C#处理Markdown文档,然后最近又把博客网站的前台改了一下,目前文章渲染使用Editor.md组件在前端渲染,但这个插件生成的目录树很丑,我魔改了一下换成boo...
StarBloghttps://blog.deali.cn/blog/starblog-identity-auth
...uthService类,先留着不写代码,等把准备工作完成了再来。 用户模型 在 StarBlog.Data 项目的 Models 目录下新建 User 类 代码如下 c# namespace StarBlog.Data.Models; public class User { public string Id { get; set; } public...
StarBloghttps://blog.deali.cn/blog/csharp14-new-extension-block
... 从静态方法到扩展块 传统的扩展方法需要每个方法都重复写 this 参数,且只能扩展方法。新语法通过 extension 关键字定义一个块,将目标类型集中声明。 传统写法是这样的 c# public static class StringExtensions { // 每个方法都要写一遍 (this string str) public static bool Is...
StarBloghttps://blog.deali.cn/blog/aspnetcore-development-notes-webapi-integrate-corp
... 不过AI总是有盲区的,就比如国内的微信开发。 微信的文档是公认的烂,而且经常悄咪咪改接口又不更新文档,所以AI对微信开发的API其实不怎么熟悉,经常给出一些错误的回复。 本文记录一下最近我使用 C# WebApi 项目接入企业微信和公众号的过程,主要是用到自动回复功能。 前置工作 依赖库 我用到了 **SKIT.FlurlHttpClient.Wechat** 这个系列的库:...
StarBloghttps://blog.deali.cn/blog/starblog-30
... 评论实体类的代码如下,可以看到除了 AnonymousUser 的引用,我还预留了一个 User 属性,目前博客前台是没有做登录功能的,预留这个属性可以方便以后的登录用户进行评论。 c# public class Comment : ModelBase { [Column(IsIdentity = false, IsPrimary = true)] public string...
StarBloghttps://blog.deali.cn/blog/asp-net-core-hangfire-async-scheduled
...Python写的数据采集平台往.Net Core上迁移,原本的采集任务使用多进程+线程池的方式来加快采集速度,使用Celery作为异步任务队列兼具定时任务功能,这套东西用着还行,但反正就折腾嘛,直接上C#~ 本文记录 Hangfire 在实际应用里的用法,我发现网络上找到的大部分文章都是用 Hangfire 的异步任务输出个 Hello World,然后就没了。我实在不知道这样的文章写了有什么意...
StarBloghttps://blog.deali.cn/blog/csharp-integrate-viewfacecore-face-recognition
前言 人脸检测与识别现在已经很成熟了,C# 上有 ViewFaceCore 这个很方便的库,但这种涉及到 native 调用的库,一般会有一些坑,本文记录一下开发和部署的过程。 本文的项目是 AIHub ,关于本项目的开发过程,可以参考之前的文章:[项目完成小结:使用Blazor和gRPC开发大模型客户端](https://blog.sblt.deali.cn:9000/p/projec...