首页
关于
Search
1
免费PHP空间收集
354 阅读
2
[Win]端口转发工具
220 阅读
3
MobaXterm 终端管理
86 阅读
4
Heroku 定时自动启动
82 阅读
5
docker 部署SQL server
77 阅读
默认分类
网络资源
技术分享
我爱学习
JAVA
Golang
Linux
C#
登录
Search
标签搜索
工具
端口转发
PHP空间
虚拟主机
免费
redis
小幻
累计撰写
17
篇文章
累计收到
3
条评论
首页
栏目
默认分类
网络资源
技术分享
我爱学习
JAVA
Golang
Linux
C#
页面
关于
搜索到
7
篇与
的结果
2022-11-04
NET CORE 使用swagger
Swagger根据在代码中使用自定义的注解来生成接口文档,这个在前后端分离的项目中很重要。这样做的好处是 在开发接口时可以通过swagger 将接口文档定义好,同时也方便以后的维护。在没有swagger之前,我们可以使用word,excel等功能来书写接口定义文档,但又有一个弊端,即: 在接口发送改变时需要及时的同步接口文档,否则实际的接口与接口文档不相符,则接口文件就失去了作用,甚至会起到反作用。NET CORE 使用swagger进入使用nuget控制台安装swagger 或者自行nuget搜索Swashbuckle.AspNetCoreNuGet\Install-Package Swashbuckle.AspNetCore -Version 6.4.0注册swagger 服务、修改Startup.cs文件public void ConfigureServices(IServiceCollection services) { //注册 A 服务 //注册 B服务 //注册swagger services.AddSwaggerGen(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { //配置开发模式使用swagger app.UseSwagger(); app.UseSwaggerUI(); } //任意模式都使用swagger app.UseSwagger(); app.UseSwaggerUI(); //其他配置... }打开swagger SWAGGER 常见错误
2022年11月04日
9 阅读
0 评论
0 点赞
2022-10-29
c# 成员修饰符详解
PUBLICpublic 修饰符所修饰的成员不受任何限制在任何程序集、命名空间中都可以使用定义一个类并设置成员为公开在LearnPackge dll中定义一个类并创建一个公开的成员,本在构造方法中访问IsPublicnamespace LearnPackge { public class LearnModifiers { /// <summary> /// 定义一个公开成员 /// </summary> public int IsPublic; public LearnModifiers() { // 构造方法也可以访问IsPublic this.IsPublic = 100; } } }LearnModifiers dll中实例化LearnModifiers类IsPublic 可以访问namespace LearnModifiers { internal class Program { static void Main(string[] args) { ///在LearnModifiers dll 可以访问到ispublic 这个属性 var baseObject = new LearnPackge.LearnModifiers(); baseObject.IsPublic = 10; } } }LearnPackge dll 中创建Test 类也可以访问namespace LearnPackge { public class Test { public Test() { new LearnModifiers().IsPublic = 10; } } }创建一个子类Subclass 继承LearnModifiers 发现也可以访问namespace LearnPackge { public class Subclass:LearnModifiers { public Subclass() { this.IsPublic = 100; } } }结论:public 属性修饰的属性可以在任意地方被访问到private在 LearnModifiers 中定义一个私有成员IsPrivatenamespace LearnPackge { public class LearnModifiers { /// <summary> /// 定义一个私有成员 /// </summary> private int IsPrivate; } }测试在其他程序中是否可以通过实例对象访问namespace LearnModifiers { internal class Program { static void Main(string[] args) { var baseObject = new LearnPackge.LearnModifiers(); //此时已经无法通过baseObject 实例访问 IsPrivate 成员 } } }测试继承是否可以访问namespace LearnPackge { public class Subclass:LearnModifiers { public Subclass() { //此时无法通过 this、base 去访问 IsPrivate 成员 } } }测试自身类是否可以访问namespace LearnPackge { public class LearnModifiers { /// <summary> /// 定义一个私有成员 /// </summary> private int IsPrivate; public LearnModifiers() { //类本身可以访问自己定义的private 修饰的成员 this.IsPrivate = 100; } } } 结论:private 所修饰的成员只有类本身可以访问到protected创建一个protected修饰的成员namespace LearnPackge { public class LearnModifiers { protected int IsProtected; public LearnModifiers() { //构造方法中可以访问 IsProtected this.IsProtected = 0; } } }测试子类是否可以访问namespace LearnPackge { public class Subclass:LearnModifiers { public Subclass() { //可以访问到 this.IsProtected = 10; } } }测试实例对象是否可以访问namespace LearnModifiers { internal class Program { static void Main(string[] args) { var baseObject = new LearnPackge.LearnModifiers(); //IsProtected 成员无法访问到 } } }结论 protected 修饰的成员只能当前类或者他的子类所访问到小问题: protected internal 所修饰的成员可以被那些访问到?internalnamespace LearnPackge { public class LearnModifiers { internal int IsInternal; public LearnModifiers() { //自身可以访问到 this.IsInternal = 0; } } }同一个dll的子类也可以访问到namespace LearnPackge { public class Subclass:LearnModifiers { public Subclass() { this.IsInternal = 10; } } }同一个dll中通过实例对象也可以访问到namespace LearnPackge { public class Test { public Test() { new LearnModifiers().IsInternal = 10 ; } } }不同dll下实例namespace LearnModifiers { internal class Program { static void Main(string[] args) { var baseObject = new LearnPackge.LearnModifiers(); //无法访问到IsInternal } } }不同dll 继承 class test: LearnPackge.LearnModifiers { public test() { //无法访问 IsInternal } }结论:internal 修饰的成员只有当前dll可以访问protected internal使用 protected internal 修饰的成员 可以支持子类使用 但是在其他dll中无法使用实例去访问 这里就不掩饰啦自己写代码体验吧~
2022年10月29日
2 阅读
0 评论
0 点赞
2022-10-20
Git 学习_仓库的基本使用(1)
gitgit 是一个开源的去中心化的版本管理工具操作流程0.初始化git用户信息#你的邮箱 git config --global user.email "xhuan@52xhuan.cn" #名称 git config --global user.name "xhuan"1.创建一个本地仓库app@9a43770c98d9:~/code/learnGit$ git init运行完git init 命令后会当当前目录中创建.git 文件app@9a43770c98d9:~/code/learnGit$ ls -a . .. .git在git中文件一共有三种状态 新增 修改 删除 三种状态,接下来我们创建一个文件app@9a43770c98d9:~/code/learnGit$ echo "学习一下GIT" >learn.txt app@9a43770c98d9:~/code/learnGit$ ls learn.txt app@9a43770c98d9:~/code/learnGit$ 然后我们查看仓库的当前状态app@9a43770c98d9:~/code/learnGit$ git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) learn.txt运行后发现提示learn.txt 文件没有被记录版本需要我们使用 git add 命令添加文件#添加文件到git app@9a43770c98d9:~/code/learnGit$ git add learn.txt #再次查看git状态 app@9a43770c98d9:~/code/learnGit$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: learn.txt 将文件提交到仓库中git commit -m "提交一个文件"查看我们的git提交日志app@9a43770c98d9:~/code/learnGit$ git log commit bb379b280b9d4483764311c9d91e99c9922ed9d3 Author: xhuan <xhuan@52xhuan.cn> Date: Thu Oct 20 04:56:36 2022 +0000 提交一个文件接下来我们来修改一下learn.txt 文件#在learn.txt 文件中追加”修改文件“ app@9a43770c98d9:~/code/learnGit$ echo "修改文件">>./learn.txt #查看文件 app@9a43770c98d9:~/code/learnGit$ cat ./learn.txt 学习一下GIT 修改文件 app@9a43770c98d9:~/code/learnGit$ 我们在查看一下git库的状态app@9a43770c98d9:~/code/learnGit$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: learn.txt no changes added to commit (use "git add" and/or "git commit -a") app@9a43770c98d9:~/code/learnGit$ 我们这里看到了有一个修改的文件learn.txt我们再次提交这个文件pp@9a43770c98d9:~/code/learnGit$ git add learn.txt app@9a43770c98d9:~/code/learnGit$ git commit -m "修改了一个目录" [master cc49498] 修改了一个目录 1 file changed, 1 insertion(+) app@9a43770c98d9:~/code/learnGit$ 完蛋我们这里不消息吧日志消息打错了,我们运行命令来修改日志#运行该命令可以修改上次提交的log app@9a43770c98d9:~/code/learnGit$ git commit --amend [master ad9e0c2] 修改了一个文件 Date: Thu Oct 20 05:05:51 2022 +0000 1 file changed, 1 insertion(+)接下来我们查看一下我们的提交日志app@9a43770c98d9:~/code/learnGit$ git log commit ad9e0c2026c3dc922f4e29946db24eee109cc360 Author: xhuan <xhuan@52xhuan.cn> Date: Thu Oct 20 05:05:51 2022 +0000 修改了一个文件 commit bb379b280b9d4483764311c9d91e99c9922ed9d3 Author: xhuan <xhuan@52xhuan.cn> Date: Thu Oct 20 04:56:36 2022 +0000 提交一个文件接下来我们将文件还原到第一个版本app@9a43770c98d9:~/code/learnGit$ git reset --hard bb379b280b9d4483764311c9d91e99c9922ed9d3 HEAD is now at bb379b2 提交一个文件 app@9a43770c98d9:~/code/learnGit$ cat learn.txt 学习一下GIT app@9a43770c98d9:~/code/learnGit$ 然后我们查看日志app@9a43770c98d9:~/code/learnGit$ git log commit bb379b280b9d4483764311c9d91e99c9922ed9d3 Author: xhuan <xhuan@52xhuan.cn> Date: Thu Oct 20 04:56:36 2022 +0000 提交一个文件我们发现日志只有一个了上次提交的修改日志没有了,我们查看我们的操作日志app@9a43770c98d9:~/code/learnGit$ git reflog bb379b2 HEAD@{0}: reset: moving to bb379b280b9d4483764311c9d91e99c9922ed9d3 bccb82c HEAD@{1}: commit: 修改了一个文件 bb379b2 HEAD@{2}: reset: moving to bb379b280b9d4483764311c9d91e99c9922ed9d3 ad9e0c2 HEAD@{3}: commit (amend): 修改了一个文件 cc49498 HEAD@{4}: commit: 修改了一个目录 bb379b2 HEAD@{5}: commit (amend): 提交一个文件 7ca1573 HEAD@{6}: rebase -i (finish): returning to refs/heads/master 7ca1573 HEAD@{7}: rebase -i (start): checkout HEAD 7ca1573 HEAD@{8}: rebase -i (finish): returning to refs/heads/master 7ca1573 HEAD@{9}: rebase -i (start): checkout HEAD 7ca1573 HEAD@{10}: commit (initial): 提交一个问及那我们使用命令还原到修改的版本app@9a43770c98d9:~/code/learnGit$ git reset --hard bccb82c此时日志又回来了,在运行中我们可以通过.gitignore文件配置忽略那些文件/目录不纳入git管理中app@9a43770c98d9:~/code/learnGit$ echo "/test">.gitignore app@9a43770c98d9:~/code/learnGit$ mkdir test app@9a43770c98d9:~/code/learnGit$ echo "add">add.txt app@9a43770c98d9:~/code/learnGit$ git status On branch master Untracked files: (use "git add <file>..." to include in what will be committed) .gitignore add.txt nothing added to commit but untracked files present (use "git add" to track)此时我们发现在.gitignore文件中输入的/test目录没有出现在git状态中 说明成功忽略的test这个目录log 查看精简优化查看app@9a43770c98d9:~/code/learnGit$ git log --oneline --graph --decorate * bccb82c (HEAD -> master) 修改了一个文件 * bb379b2 提交一个文件
2022年10月20日
7 阅读
0 评论
0 点赞
2022-10-12
C# 中的where T : class, new() 到底是什么意思?
介绍在一些代码的仓储层我们经常会看到下面的这段代码,那这段代码是什么意思呢?这里的Where 其实和sql中的 where 是一样的,下面这代码用来约束泛型 T 必须有一个无参构造函数class A<T> where T:new()常见的语法class A<T> where T:class,new() //约束泛型必须是引用类型,必须有一个无参构造 where T: class // T必须是一个类(class)类型,不是结构(structure)类型 where T: new() // T必须要有一个无参构造函数 where T: struct // T必须是一个结构类型 where T: NameOfBaseClass // T必须继承名为NameOfBaseClass的类 where T: NameOfInterface // T必须实现名为NameOfInterface的接口{card-describe title="文章引用"}博客园<薄心之心>:https://www.cnblogs.com/bosins/p/14858258.html{/card-describe}
2022年10月12日
29 阅读
0 评论
0 点赞
2022-10-08
基于云函数开发的websocket笔记网
介绍本项目为基于websocket +react开发的笔记网站 {x} 登录 {x} 树目录创建 {x} 图片上传 {x} 文章创建 { } 文章删除 { } 目录删除项目地址github:https://github.com/xhuanya/ws_books演示demo: https://book-631.pages.dev/ https://my-book.xhuan.eu.org/
2022年10月08日
30 阅读
0 评论
0 点赞
1
2