日常问题
文章平均质量分 74
zhixin9001
这个作者很懒,什么都没留下…
展开
-
记一次Prometheus监控下的“内存飙升”事件
错误的表达式+重叠的时间序列”共同造成了内存飙升的假象,为了找出时间序列重叠的原因,我们了解到了Prometheus的联邦集群、高可用机制,以及这些特性的局限和特点;而针对错误的表达式的修改,则需要兼顾去除重叠时间序列的影响,为此可以通过合理使用PromQL的sum/max聚合函数来达到去重的目的。原创 2022-09-23 17:28:42 · 3415 阅读 · 0 评论 -
初识GraphQL
最近项目上接触到了GraphQL,但由于对其的理解很不足,应用的时候出现了很多问题和困扰。此外,GraphQL据说是为了替代RestFul,但在为数不多的实践中,GraphQL并没有像Docker、K8S那样带给人直观的颠覆性体验,可能随着使用经历的增加,会有新的体会吧。本文属入门性质,分两部分:GraphQL与RestFul、SQL、BFF的对比GraphQL基础。......原创 2022-08-05 16:43:14 · 679 阅读 · 0 评论 -
Serilog在 ASP.NET CORE的使用
初始化要用Serilog替换原生的Log,需要做如下配置:添加Nuget:dotnet add package Serilog.AspNetCore修改Main方法public static void Main(string[] args){ Log.Logger = new LoggerConfiguration() .MinimumLevel.Information() .MinimumLevel.Override("Microsoft", LogEventLevel.原创 2021-01-09 08:38:55 · 1842 阅读 · 0 评论 -
Linux初体验
现在正式回到计划的内容上来了。之前为了出去玩时文章有的发,开了几篇《ASP.NET MVC企业实战》,后面又因为工作需要学了一点Angular,企业实战挺好的书,后面有时间还想看看,Angular本来想着速战速决,但看来还需要至少一个月,那么就先了解点基础,以后用时再深入吧。多年前的笔记本,使用WIN10 32位,运行VS2017时卡得要命,之后的课程如果再安装虚拟机,怕是不成了。于是干原创 2017-09-01 22:17:22 · 355 阅读 · 0 评论 -
了解一些多线程相关的知识
一、基础知识a)多线程的基础类为Thread,实际应用中一般用线程池,而不会直接用到Thread类。Thread基本的使用为:int i = 5;Thread thread = new Thread((p) => { Console.WriteLine(p);});thread.Start(i);可以用lambda写法,也可以指向一个方法,参数通过Start(原创 2017-09-18 21:53:28 · 332 阅读 · 0 评论 -
异步方法的编写与使用
一、异步方法的编写a) 如果需要使用await,则方法必须用async修饰。控制器、事件处理函数这些都可以使用async,但Main函数却不能。如果需要在Mainh函数中调用异步方法,可以使用Result属性,比如:HttpClient hc = new HttpClient();var taskMsg = hc.GetAsync("http://www.bing.com");原创 2017-09-22 22:38:31 · 727 阅读 · 0 评论 -
Web API 方法的返回类型、格式器、过滤器
一、Action方法的返回类型a) 操作方法的返回类型有四种:void、简单或复杂类型、HttpResponseMessage类型、IHttpActionResult类型。b) 如果返回类型为void,请求结束后HTTP状态码为204(No Content),如果返回类型为复杂类型,则对象会被转化为Json字符串后传输。c) 从图示的Web API的大致交互过程可以看到,Control原创 2017-08-13 22:08:29 · 748 阅读 · 1 评论 -
WebAPI路由、参数绑定
一、测试Web APIa)测试Web API可以用来检测请求和返回数据是否正常,可以使用Fiddler、Postman等工具。以Fiddler为例,这是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据。b)Fiddler会默认捕获所有进程原创 2017-08-10 22:47:37 · 2545 阅读 · 0 评论 -
日常问题总结 三
#Server.HtmlEncode对一段字符串进行html编码response.write(Server.HTMLEncode("Theimage tag: "))输出为:The image tag: <img>浏览器端显示为:The image tag: #ASP.Net中Session对象默认的有效期为20分钟IIS中Session的默认有效期为20分原创 2017-07-23 22:22:19 · 175 阅读 · 0 评论 -
关于CSS的一些基础内容
最近用到了CSS,刚好学学。CSS(Cascading Style Sheet)中文名层叠样式表,用于为html文档添加样式控制,也是一种计算机语言。一、CSS语法a)CSS规则由选择器和声明组成,构造为selector{declaration1;declaration2},多个声明之间用分号隔开。declaration又包含属性property和值value两部分。结构为proper原创 2017-09-29 21:56:51 · 303 阅读 · 0 评论 -
了解索引器、密封类、扩展方法等
一、索引器索引器可以根据数字、字符串等进行索引,也可以使用多个索引器参数,平时使用地不多,在.net框架中可以见到,比如string类的索引器可以获取某个位置的字符:string s = "abc";char c = s[1];public char this[int index] { get; }索引器与属性类似,也可以有get、set两部分,写法为this[...]。原创 2017-10-09 22:01:46 · 286 阅读 · 0 评论 -
集合扩展方法、委托的运算、事件
一、集合扩展方法用于集合操作的扩展方法有Where、Select、Max、Min、Sum、OrderBy、ToList、First、FirstOrDefault、Single、SingleOrDefault等。原来还有Max、Min、Sum这些扩展方法,而且ToList也是扩展的。上一篇有写过MyWhere方法,MySum可这样写:public static int MySum(this原创 2017-10-18 21:53:38 · 235 阅读 · 0 评论 -
Web API的参数、多版本和Filter
一、关于API的参数a) Web API在WebApiConfig.cs中配置了路由模板,默认为"api/{controller}/{id}",这与MVC路由模板的区别在于没有{action},会根据请求方式来找到对应的方法,只要一个Action标注了[HttpGet],那么不管Action的名称如何,Get请求都会被路由到这个Action。b)如果有GET请求为http:/***/api原创 2017-10-27 22:42:53 · 966 阅读 · 0 评论 -
反射和正则基础
一、反射a)通过反射可以动态地创建对象、赋值或者调用方法。MVC、EF等各种框架都会用到反射,还有VS的智能感知、监视功能也利用了反射。反射的基础类为Type,每个类对应一个Type对象,每个方法、属性分别对应MethodInfo和PropertyInfo对象,这些就是类、方法、属性的元数据(Meta Data)。b) 获取一个类的Type对象有下面几种方法,可根据场景需要选择适合的方原创 2017-10-20 21:56:03 · 208 阅读 · 0 评论 -
委托、泛型委托等
委托是一种指向方法的数据类型,是一种类型安全的函数指针。这里学习一些具体的用法。一、基本写法委托的关键词为delegate,使用委托需要先给出函数签名,比如:delegate string MyDel1(string s, string s1);这里定义了一个名为MyDel1的委托,要求指向的函数为两个string参数,输出为string,M1即符合函数签名。stati原创 2017-10-13 21:47:57 · 249 阅读 · 0 评论 -
匿名方法、lambda
一、匿名方法委托作为函数指针要指向一个方法,类似前面那种写法,定义函数签名、按照签名编写方法、最后委托指向这个方法,但很多时候没有必要这么繁琐,因为这个方法只有这个Delegate会用,而且往往只会用一次,这时使用匿名方法最合适。类似javascript中函数的写法:Func d4 = delegate (int i, string str) { Console.WriteLine(原创 2017-10-16 21:45:49 · 256 阅读 · 0 评论 -
N-皇后问题
国际象棋中皇后可攻击其所在行、列以及对角线上的棋子。N-皇后问题是要在N行N列的棋盘上放置N个皇后,使得皇后必吃之间不受攻击,即任意两个皇后不在同一行、同一列和系统的对角线。为解决这个问题,考虑采用回溯法:第i个皇后放在第i行,然后从第一个皇后开始,对每个皇后,从其对应行(第i个皇后对应第i行)的第一列开始尝试放置,若可以放置,则确定该位置并考虑下一个皇后;若与之前的皇后冲突,则考虑下一列;若原创 2018-05-06 22:05:27 · 407 阅读 · 0 评论 -
日常问题总结 二
#int[] arr=new int[0];变量arr本身在栈中创建。所有的变量本身都保存在栈中。对于是引用类型的数组arr来说,arr变量位于栈上,栈上的这块空间存储的是数组在堆中开辟的空间的地址。对于值类型来说,栈上直接保存的是具体的值。 # c#中要在派生类中重新定义基类的虚函数,可以在前面加override,也可以使用new关键字显式隐藏从基类继承的成员。 # 有两个类原创 2017-07-22 23:05:41 · 182 阅读 · 0 评论 -
日常问题总结 一
#堆和栈的区别栈是编译期间就分配好的空间,因此在代码中必须就栈的大小有明确的定义。局部值类型变量、值类型参数等都在栈内存中。堆是程序运行期间动态分配的内存空间,可以根据程序的运行情况调整分配的堆内存大小。#下面程序的执行结果?inti = 10;Console.WriteLine(i++);=>10 Console.WriteLine(++i);=>12i++表原创 2017-07-20 22:26:29 · 224 阅读 · 0 评论 -
Fit项目分页组件的编写
项目中涉及列表显示的地方都会用到分页控件,为了能更好地与当前网站的样式匹配,这次要自己实现一个。所以选择了模板中提供的分页样式,基于模板改造以能够动态生成: 一 控件的行为规则a) 可设置显示几个页码(默认5个,只能是奇数)如果当前页显示5个,则默认前后各有两个,比如当前页是5,显示页码为“3 45 6 7如果当前页在最前面,比如为1,显示页码为:12原创 2017-06-06 23:00:16 · 223 阅读 · 0 评论 -
[修正转载后的格式错误]C# 程序员最常犯的 10 个错误
来源:http://www.oschina.net/translate/top-10-mistakes-that-c-sharp-programmers-make关于C#C#是达成微软公共语言运行库(CLR)的少数语言中的一种。达成CLR的语言可以受益于其带来的特性,如跨语言集成、异常处理、安全性增强、部件组合的简易模型以及调试和分析服务。作为现代的CLR语言,C#是应用最为广泛的,其应用场景针对W转载 2017-04-12 10:47:18 · 891 阅读 · 0 评论 -
详细了解 int? 类型
int?是什么;了解Nullable结构体;Nullable类型中的GetValueOrDefault方法与运算符重载原创 2017-04-13 22:02:18 · 739 阅读 · 0 评论 -
你用过这种奇葩的C#注释吗
博客园一位微软MVP的文章http://www.cnblogs.com/asxinyu/p/4383402.html#autoid-0-0-0 摘录:我这里说的奇葩,并不是脱离三种方式,而是其注释的位置,但是在浏览一段开源的代码的时候,发现了这个注释,当时吃惊,然后是思考,先看看: 上面一段代码包括了前面提到的3种注释方式,红色框里面的就是我说的 奇转载 2015-11-22 09:50:53 · 372 阅读 · 0 评论 -
C# 窗体间传值方法大汇总
http://bbs.csdn.net/topics/390128592留着慢慢学习第一种方法:创建一个类,里面声明用于存储接收的字段。传的时候存储于字段中,要用的时候,直接类名.字段名 进行调用。(这种方法传递是双向的) 第二种方法:1.在Form1里定义public string Name = "*****" 2. 在Form2里创建Form1对转载 2015-09-23 16:55:31 · 367 阅读 · 0 评论 -
C# 程序员最常犯的 10 个错误http://www.oschina.net/translate/top-10-mistakes-that-c-sharp-programmers-make
来源:http://www.oschina.net/translate/top-10-mistakes-that-c-sharp-programmers-make关于C#C#是达成微软公共语言运行库(CLR)的少数语言中的一种。达成CLR的语言可以受益于其带来的特性,如跨语言集成、异常处理、安全性增强、部件组合的简易模型以及调试和分析服务。作为现代的CLR语言,C#是应用最为广转载 2015-09-23 08:27:16 · 2392 阅读 · 3 评论 -
获取数据库中表名
用的老旧的ASSESS数据库,用sql语句获取的方式是:"select name from MSysObjects where type=1 and flags=0",跟其他数据库差异很大,而且这MSysObjects还是一个系统隐藏对象,程序想用这种方法的话,要到assess安全设置里设置允许MSysObjects的访问权限,要一个一个数据库单独设置,所以对于我这种一天产生好几个库的情况原创 2015-08-30 11:47:28 · 387 阅读 · 0 评论 -
多线程 调用带参数函数
今天又长知识了,一直只用没参数的多线程: newThread = New Thread(AddressOf Updating) newThread.Start()今天修改Updating() 后,不会用了,提示 错误 “AddressOf”操作数必须是某个方法的名称(不带圆括号)。后来知道是这样的: new原创 2015-08-03 17:01:07 · 528 阅读 · 0 评论 -
window.event.returnvalue=false;不起作用
遇到了这个问题,这儿也有人问了,http://bbs.csdn.net/topics/390691844,按着这边的说法,把它换成return false ,试了下果然有效。初学DOM,这两者的区别慢慢了解吧。原创 2015-07-17 09:15:07 · 4350 阅读 · 0 评论 -
关于DAL层使用静态方法,并在WEB层直接调用的问题
同样的疑惑,记录一下吧:http://bbs.csdn.net/topics/360204198DAL静不静态看connection等关键资源是否静态比如下面的代码,就算静态也没事public class DAL{ public static DataTable Query(...) { using(var conn = new转载 2015-07-01 09:36:11 · 716 阅读 · 0 评论 -
VS2010部署相关
找到一篇写得最负责的。贴住收藏了:http://blog.csdn.net/xhf55555/article/details/7702212。之前在其它地方找的都缺胳膊少腿,真不知他们自己怎么实现的,就让大家看。根据这里的知道,已经成功部署,运行没问题。但疑惑的是部署时我没添加资源文件,程序里面遇到需要读取资源文件的地方竟然也不报错。神奇了,再学习学习。转载 2015-07-02 10:02:02 · 366 阅读 · 0 评论 -
.NET 获取类内成员的名称,以字符串形式显示
需要做一个功能,显示类内的属性名和对应的值。比如有类Public Class SupervisedParams Public TestMode As string Public Time As String Public TorquePV As Single Public PrsPV As SingleEnd Class这里用了公共字段代原创 2015-07-03 21:44:28 · 503 阅读 · 0 评论 -
Application.Current的使用
来源 http://www.cnblogs.com/symons/archive/2010/03/15/1686200.htmlApplication.Current的使用WPF程序对应一个Application对象,当前的Application对象可以通过Application.Current获取,通过获取到的Application对象,我们可以做以下的事情:1.Ap转载 2015-07-01 09:14:31 · 1565 阅读 · 0 评论 -
.NET中资源文件的使用
工作需要,为VB.NET WinForm程序提供一个中英文界面切换功能,大方向有三个ini、XML、资源文件。 首先ini太过时,坚决不打算用。资源文件和XML相比提供了一个资源文件管理器,编写键值对会很直观,就打算用资源文件方式了。虽然用记事本打开资源文件后发现这仍然是一些XML。 resx格式的资源文件可以说有两种吧:一种是在解决方案资源管理器中点击显示全部文件后,可以看到原创 2015-06-30 15:22:38 · 741 阅读 · 0 评论 -
对Controller的单元测试
在ASP.NET MVC项目的Controller中存在逻辑代码,也需要单元测试。查阅到的资料上,有说ASP.NET MVC框架在设计时便考虑到了满足可测试性,所以相对aspx、Winform来说针对MVC的单元测试要更容易。 一 基本使用原来对Controller的单元测试的并不像此前自己想的那么复杂,本质还是对一个代码单元的功能测试。如果不涉及HttpContext的模拟,使用方法原创 2017-06-04 22:20:27 · 4002 阅读 · 0 评论 -
Fit项目图片上传和云存储的调通
项目中关于动作的说明需要相应的配图,这样可以更直观的说明动作要点。本篇主要为项目中动作的新增和编辑做准备,确定适合场景的上传操作逻辑以及图片的存储和加载的方法。一 上传方案a) 本来所用的模板中是有一款挺好的上传控件的,支持多选、拖拽、并行上传。 但探索了半天后才意识到这个并不适合当前的场景。不管是动作的新增还是编辑,上传图片后最好能即时地看到所添加的图片。这个控件无原创 2017-06-15 22:16:27 · 348 阅读 · 0 评论 -
如何在单元测试时隔离ORM
在项目中需要对DAL层进行单元测试,如果直接操作数据库,首先测试速度会大大下降,而且让单元测试直接使用外部依赖,很可能带来后续维护的不便,所以有必要对数据库隔离,然后单独测试DAL层。由于使用了ORM框架EF,就从EF入手。按照单元测试的思路,这是便在DAL层与EF之间找到或制造接缝,并从接缝处开始分割、注入。 一 基本思路a) 有个专门的设计模式(Repository)可以解决这个问原创 2017-06-01 22:04:17 · 714 阅读 · 0 评论 -
C#中的DateTime是值类型还是引用类型
近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容结论:DateTime是值类型,因为DateTime是结构体,而结构体继承自System.ValueType,属于值类型 一、DateTime是值类型还是引用类型的探索二、了解DateTime结构体三、DateTime.Now和DateTime.UtcNow是怎么计算出来的原创 2017-04-12 09:29:42 · 3204 阅读 · 0 评论