![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
.Net日常工作问题
行者僧
这个作者很懒,什么都没留下…
展开
-
c# 动态更新配置文件
Net Core之后ConfigurationManager不在标准命名空间内,可以使用IConfiguration。在.Net Framework版本可以使用ConfigurationManager。通常是指app.config或web.config。原创 2024-01-10 11:09:56 · 625 阅读 · 0 评论 -
控制台程序退出时触发事件
Windows API中有个SetConsoleCtrlHandler函数可以处理Ctrl+C和直接关闭控制台应用这两种关闭事件。控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。在关闭时希望执行一段处理逻辑。原创 2024-01-10 10:01:08 · 434 阅读 · 0 评论 -
查找项目中所有使用自定义属性的类
AttributeUsage(AttributeTargets.Method)] //标签适用范围set;//项目中使用的所有dll.ToList();原创 2023-09-13 19:26:40 · 105 阅读 · 0 评论 -
EF Core修改Migration更新数据库表
一般重命名表,生成的ef migration会删除旧表,创建一张新表,如果想不删除旧表,需要修改生成的migration。需要通过EF Migration修改数据库一张表的名称,字段,主键,索引。原创 2023-09-13 19:10:42 · 481 阅读 · 0 评论 -
HttpClient返回异常分类
http client遇到不会返回response的异常,进行捕获处理原创 2023-05-23 15:01:12 · 342 阅读 · 0 评论 -
Net Core 移除已注册Service
Net core 移除已经注册的服务原创 2022-10-19 23:33:58 · 336 阅读 · 0 评论 -
C# 数据类型转换工具类
数据类型转换工具类原创 2022-07-12 18:13:56 · 333 阅读 · 0 评论 -
非整型判断是否是整数
double和decimal类型判断是否有小数位:private static IsInteger(this decimal amount){ if(amount % 1 == 0) return true; else return false;}原创 2021-12-17 19:36:26 · 378 阅读 · 0 评论 -
C# 反射判断是否是基础类型
```csharppublic static bool IsFundamental(this Type type){ return type.IsPrimitive || type.IsEnum || type.Equals(typeof(string)) || type.Equals(typeof(DateTime));}原创 2021-11-15 16:17:24 · 2224 阅读 · 0 评论 -
Asp.Net Core MVC发布时不打包视图文件
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-09-23 00:27:28 · 422 阅读 · 0 评论 -
Abp 框架支持多类型ContentType
Abp 多格式入参标题在Abp中使用xml格式的入参标题在Abp中使用xml格式的入参首先在注入的Module中添加指定的数据转换Public class XmlNodeModule : AbpModule{ public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddControllers().AddXmlSerializerFormatter原创 2021-06-23 11:13:17 · 333 阅读 · 1 评论 -
.net core middleware 捕获 request和response
public async Task Invoke(HttpContext context) { if (context != null) { var endpoint = context.GetEndpoint(); var originalResponseStream = context.Response.Body; if (en...原创 2021-05-19 16:11:22 · 501 阅读 · 0 评论 -
Webapi配置文件修改端口号
.net core 3.0之后可以通过在appsettings.json中添加配置 urls 配置绑定端口号原创 2021-05-09 18:07:48 · 1824 阅读 · 0 评论 -
.Net core 泛型服务的注册
在.Net core注册一个泛型的服务public interface IService<T>{ async Task DoAction();}public class Service<T> : IService<T>{ public async Task DoAction() { .... do action }}ServiceCollection.AddScoped<typeof(ISer原创 2021-03-25 14:27:32 · 1124 阅读 · 0 评论 -
C# 动态赋值
1. JObject命名空间Newtonsoft.Json.Linq往JObject添加属性:1. var jobject = new JObject();jobject.Add("propertyName", PropertyValue);2.var jobj = new JObject();jobj["PropertyName"] = propertyValue;2. 匿名对象var model = new ModelToConvert();var propert原创 2021-03-18 11:33:37 · 1657 阅读 · 0 评论 -
.net core使用GB2312编码报错
.Net core 3.1在使用Encoding.GetEncoding("GB2312")时抛错:Unhandled Exception: System.ArgumentException: 'GB2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.使原创 2021-02-20 14:21:23 · 726 阅读 · 0 评论 -
c# Des-ECB加解密记录
MD5加密:/// <summary>/// 16位MD5加密/// </summary>/// <param name="password"></param>/// <returns></returns>public static string MD5Encrypt16(string paramToEncrypt){ var md5 = new MD5CryptoServiceProvider();原创 2020-12-15 10:36:36 · 614 阅读 · 0 评论 -
C# 枚举扩展方法
/// <summary>/// 扩展方法,获得枚举的Description/// </summary>/// <param name="value">枚举值</param>/// <param name="nameInstead">当枚举值没有定义DescriptionAttribute,是否使用枚举名代替,默认是使用</param>/// <returns>枚举的Description</returns.原创 2020-12-10 23:45:01 · 1028 阅读 · 0 评论 -
c# Http相关的Mock
在C#的单元测试中,因为Mock只能对接口进行mock,所以无法mock一个HttpClient的实例,经调研记录一下Mock的方法:var httpHanlderMocker = new Mock<HttpMessageHandler>();httpHanlderMocker.Protected().Setup<Task<HttpResponseMessage>>("SendAsync", ItExpr.IsAny<Ht原创 2020-11-27 17:23:35 · 1073 阅读 · 0 评论 -
Redis 持久化策略解析
Redis是内存数据库,一旦redis服务关停,内存中的数据都会被清空,所以 内存数据库 提供了数据落地的策略Redis中持久化策略有两个 RDB 和 AOFRDB:首先指定把数据保存到哪个地方 config set dir E: 设置保存文件夹, config set dbfilename dumb.rdb 设置保存文件RDB可以手动用 bgsave触发(会启用一个子线程来处理,不会block主线程处理其他命令,就用这个吧)也可以被动触发save m n 表示在m 秒内发生了n次数据变原创 2020-11-10 10:26:09 · 138 阅读 · 0 评论 -
c# 字符串转时间的方式
**第一种方法**string timeStr = "2019-08-28";DateTime time= Convert.ToDateTime(timeStr);**第二种:**DateTimeFormatInfo timeForInfo = new DateTimeFormatInfo();timeForInfo.ShortDatePattern = "yyyy/MM/dd";string timeStr1 = "2018-09-08";var time = Convert.原创 2020-08-15 00:33:03 · 8976 阅读 · 0 评论 -
PowerShell 使用Invoke-WebRequest 提交表单
Post:$body = @{ client_id='id' client_secret='secret' grant_type='client_credentials' }$contentType = 'application/x-www-form-urlencoded'$sourceApi = yoururlInvoke-WebRequest -Method POST -Uri $sourceApi -body $body -Content...原创 2020-08-06 18:43:58 · 1492 阅读 · 0 评论 -
c# Dictionary线程冲突问题解决
错误信息:InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.dictionary数据类型是非线程安全原创 2020-07-17 16:32:23 · 2490 阅读 · 0 评论 -
c# 监听端口 解析http请求
console控制台程序监听本地服务器端口,解析http请求using BankProcess;using Newtonsoft.Json;using System;using System.Configuration;using System.IO;using System.Net;using System.Threading;namespace ConsoleApplication3{ class Program { private static s原创 2020-06-18 23:46:04 · 3736 阅读 · 0 评论 -
c# 动态加载 c++ dll
最近项目里面用到了C++的 dll包,研究了一下c#加载dll的方式,记录一下://加载DLL[DllImport("kernel32.dll")]private extern static IntPtr LoadLibrary(string path);private static void LoadDll(){ IntPtr ptr = LoadLibrary("xxxx.dll");}记得把dll放到你的执行目录下,一般是debug/release这里有个坑,只有在运原创 2020-06-17 00:57:19 · 523 阅读 · 0 评论 -
.Net 日常坑记录
1. C#中实现了System.Collections.Generic.IEnumerable的对象最后调用ToList之后,返回的是一个新的List引用原创 2020-06-01 14:23:09 · 185 阅读 · 0 评论 -
EF Core The instance of entity type cannot be tracked
记录一下EF core遇到:Exception Message: The instance of entity type 'Entity' cannot betracked because another instance with the same key value for {'PropertyId'} is already being tracked.原代码:context.PropertyEntity.UpdateRange(needUpdatedEntities);修改为:..原创 2020-06-01 13:53:40 · 2896 阅读 · 0 评论 -
自定义简易Log
一个简易的日志,会对日志文件加读写锁 public static class Log { private static ReaderWriterLockSlim writeLock = new ReaderWriterLockSlim(); public static void WriteLog(string path, string mes...原创 2020-03-01 22:12:07 · 205 阅读 · 0 评论 -
Asp.Net Core IActionResult自动序列化Json报文大小写
问题描述:现在在重构一个线上项目,因为旧代码使用Asp.Net Mvc,重构代码使用Asp.Net Core Mvc。会导致返回Json报文自动被序列化为驼峰命名法,前端对大小写敏感导致抛错。解决方案:1. 修改全局配置,在StartUp.cs 添加:services.AddMvc().AddNewtonsoftJson( s =>...原创 2020-01-10 10:39:46 · 1410 阅读 · 0 评论 -
如何接受HttpResponse返回的二进制文件
如果要访问一个文件传输接口,当接口返回一个二进制的文件流应当如何接收:using (Stream dataStream = response.GetResponseStream()){ int readCount = 0; //位运算,128k字节 int bufferSize = 1 << 17; var buffer = new byte...原创 2019-12-27 11:12:27 · 4623 阅读 · 0 评论 -
Asp.net core Mock IOptionsMonitor
在.net core 项目中如何来mock配置文件读取的IOptionsMonitor:第一种:var options = new ServiceOptions();var optionsMocker = new Mock<IOptionsMonitor<ServiceOptions>>();optionsMocker.Setup(m => m.Curr...原创 2019-12-27 11:06:54 · 480 阅读 · 0 评论 -
Restful API
Rest API核心是一切皆资源对资源进行操作,不包含action的名称,只包含操作符原创 2019-12-11 16:34:15 · 191 阅读 · 0 评论 -
查询IIS日志
IIS会记录每条请求及返回状态码,日志文件在:C:\inetpub\logs\LogFiles\W3SVC1或者通过EventViewer中的Customer View\Server Roles\Web Server 查看原创 2019-12-04 15:44:58 · 211 阅读 · 0 评论 -
接口及实现的访问控制
一般使用接口都默认的public方式,还没有注意过其他访问控制方式。重构项目时,遇到使用其他控制符的情况,现总结如下:接口成员属性,默认是public方式,并且不能显式使用其他控制符interface本身可以用其他控制符,比如:internal interface MyClass{ void test();}在实现时同样不能使用访问控制符修饰接口方法即便是和接口同...原创 2019-10-28 16:50:10 · 1045 阅读 · 0 评论 -
IIS优化配置
转载链接:https://www.cnblogs.com/xinaixia/p/5945678.html找到Web站点对应的应用程序池,“应用程序池” → 找到对应的“应用程序池” → 右键“高级设置...” 一、一般优化方案 1、基本设置 [1] 队列长度: 默认值1000,将原来的队列长度改为 65535。 [2] 启动32位应用程序:默认值False,改为Tr...转载 2018-08-20 10:34:28 · 4272 阅读 · 0 评论 -
Asp.Net大文件上传
使用Asp.Net上传视频等大文件时,需要配置项目web.config文件(Asp.Net默认上传限制为4M):1.asp.net程序请求运行最大长度<system.web> <!--设置上传文件大小 maxRequestLength单位为kb最大不能超过2g,executionTimeout单位为s--> <httpRuntime targ...原创 2018-08-10 11:22:09 · 765 阅读 · 0 评论 -
同一解决方案下,项目互相引用问题
在同一解决方案下,必须保证各项目的.net framework 版本一致,才可互相引用,否则即使引用了dll文件也会抛缺引用错误,特此记录原创 2018-08-06 11:13:39 · 1425 阅读 · 0 评论 -
StackExchange.redis 实现模糊匹配批量查询
如果使用redis的频次较高,那么业务中经常会出现需要根据关键字进行批量查询,所以总结一下StackExchange中使用批量查询的方法(如果数据量很大,那么在redis中模糊查询很耗时,请慎用!)初始化redis连接对象: string _connectionString = ConfigurationManager.ConnectionStrings["R...原创 2018-07-30 16:12:21 · 9017 阅读 · 2 评论 -
C# System.Drawing.Text 使用自定义字体或本地字体
使用自定义字体: PrivateFontCollection prc = new PrivateFontCollection(); prc.AddFontFile("自定义字体路径"); Font f = new Font(prc.Families[0], 12);使用本地字体: InstalledFontCollection fc = ne...原创 2017-06-19 10:28:27 · 7491 阅读 · 0 评论 -
EF转Json时遇到Self Referencing loop问题
运用EF实体类时,如果实体类包含导航属性则使用Newtonsoft.Json转换成Json字符串时会遇到无限循环导致报错的问题:解决:1. 可以封装一个方法将Entity转换成Model。2. 在导航属性列添加Newsoft的JsonIgnore属性,这样在序列化时将忽略导航属性列...原创 2018-03-29 11:08:45 · 1254 阅读 · 0 评论