随笔分类 -  C#.Net学习

C#.Net学习相关
摘要:C#6.0引入了Null条件运算符: obj?.Invoke(); 等价于 if(obj != null) obj.Invoke(); 即遇到null时短路。 于是,我不假思索地写下了这样的代码:① await obj?.InvokeAsync(); 遇到null时短路嘛,我以为是等价于这样:② i 阅读全文
posted @ 2024-01-26 10:42 陈惊蛰 阅读(185) 评论(1) 推荐(1) 编辑
摘要:WPF没有Vue中好用的v-if/v-else是很可惜的,虽然razor里有。 这时候一般使用Visiblity属性控制控件的显示。这在控件A和B需要动态切换显示、隐藏的时候很有用。 但是如果是在ListBox/ListView里的话,如果里面的Item需要根据条件用不同的Template渲染的时候 阅读全文
posted @ 2021-08-12 16:02 陈惊蛰 阅读(968) 评论(0) 推荐(0) 编辑
摘要:其实ListBox和ListView在这里是一样的。 1、使用方法ScrollIntoView ListView继承自ListBox,ListBox有这个方法,可以滚动到指定的item。 listBox.ScrollIntoView(listBox.Items[listBox.Items.Count 阅读全文
posted @ 2021-08-12 15:35 陈惊蛰 阅读(2986) 评论(0) 推荐(0) 编辑
摘要:举个例子,实现一个用户头像的Image控件,绑定的是url。而我的需求是下载url的图片,做本地缓存,再显示。 Converter实现需要继承自IValueConverter,而它的两个接口都是同步,而下载函数是异步async的。此时在Convert函数实现内使用await关键词是不允许的。 解决方 阅读全文
posted @ 2021-08-10 16:47 陈惊蛰 阅读(296) 评论(0) 推荐(0) 编辑
摘要:常见案例是MySql.Data和MySqlConnector。 比如一般的orm for mysql用的是mysql.data,而Pomelo.EFCore.MySql用的是MySqlConnector。当同时引用这两个类库的时候,如果需要new MySqlConnection()可能就会发生冲突了 阅读全文
posted @ 2021-08-10 08:41 陈惊蛰 阅读(120) 评论(0) 推荐(0) 编辑
摘要:1、引入 包:Microsoft.Extensions.Hosting.WindowsServices 参考:https://devblogs.microsoft.com/ifdef-windows/creating-a-windows-service-with-c-net5/ 代码:UseWind 阅读全文
posted @ 2021-08-07 00:21 陈惊蛰 阅读(91) 评论(0) 推荐(0) 编辑
摘要:遇到一个问题,通过queryString传参的时候,空格被encode成了+,而前端的空格对应的应该是%20。 搜了下为什么,看到W3C的空格会被转为+,而RFC2395则是%20。 而我使用的是HttpUtility.UrlEncode(),它是编码为+的。 然后HttpUtility.UrlPa 阅读全文
posted @ 2020-10-09 09:22 陈惊蛰 阅读(6077) 评论(0) 推荐(0) 编辑
摘要:首先对项目拆分, 根据业务服务内容拆分项目, 最终结果是一堆dll. 相关的dll组合起来服务一项业务功能, 称为模块. 如果单独部署, 则为一个微服务模块. 这样先拆分模块之后根据具体项目配给的人力物力进行最终的部署: 哪些模块作为独立服务部署, 哪些模块组合成一个服务部署. 这里的模块所指的都是 阅读全文
posted @ 2020-07-17 14:32 陈惊蛰 阅读(1026) 评论(0) 推荐(0) 编辑
摘要:场景 生产者和消费者队列, 生产者有多个, 消费者也有多个, 生产到消费需要异步. 下面用一个Asp.NetCore Web-API项目来模拟 创建两个API, 一个Get(), 一个Set(), Get返回一个字符串, Set放入一个字符串, Get返回的就是Set进去的字符串. 实现如下: 接着 阅读全文
posted @ 2019-12-02 17:19 陈惊蛰 阅读(1122) 评论(1) 推荐(5) 编辑
摘要:一 为什么用Blazor 原本就是后端程序员, 技术栈基于C#, 懂一点前端jQuery/Html 不管是webAssembly还是ServerSide, 就是想方便地做单页应用, 能wasm自然更好 对于项目进行一定阶段后繁琐的大量js调用如何合理规划很苦恼, 又没有深入了解流行的前端框架无法给出 阅读全文
posted @ 2019-11-28 13:56 陈惊蛰 阅读(2642) 评论(0) 推荐(1) 编辑
摘要:一 项目结构 1> 接口项目 .net core类库 2> Grains实现项目 .net core类库 3> 服务Host .net core console application 4> 服务调用者Client .net core console application with tcp 5> 阅读全文
posted @ 2018-10-30 14:52 陈惊蛰 阅读(1296) 评论(0) 推荐(0) 编辑
摘要:一 安装MongoDB 官网按需下载, 安装, 一步到位. 二 VS创建新项目 创建一个.netcore console项目, 然后nuget安装驱动MongoDB.Driver 三 建立连接 在Program.Main函数中添加代码 三个对象, client是连接数据库的客户端, database 阅读全文
posted @ 2018-09-12 15:15 陈惊蛰 阅读(12872) 评论(6) 推荐(3) 编辑
摘要:背景是有一个游戏服务器一直以来都是写SQL的, 后来改过一段时间的redis, 用的是别的员工写的类orm方式将实体类型映射成各种key-value对进行写入, 但是仍有一个缺点就是需要在增\删\改的时候显式调用API, 更糟糕的是要注明删\改的字段名, 不然就会整个实体重写入. 实际使用中经常会出 阅读全文
posted @ 2018-08-19 20:31 陈惊蛰 阅读(625) 评论(0) 推荐(0) 编辑
摘要:项目中需要用到一些数值表格, 方便起见都是用excel来的. 而如果excel正打开中, 直接使用npoi制作的工具来导出数据的话, 在这一行将会异常: workbook = new XSSFWorkbook(filepath); 其实只是读取的话, 并不需要获得它完整的使用权限, 那么用file. 阅读全文
posted @ 2018-04-04 12:33 陈惊蛰 阅读(1329) 评论(0) 推荐(0) 编辑
摘要:拥抱.net core的过程中, 将公司的一套java项目改成了.net core 2.0版的. 里面的tcp服务被我用msdn的SocketAsyncEventArgs方式重写了, 然而在测试的过程中发现, 偶尔会出现重启无法再次绑定监听的情况. 因为缺乏linux上编程的经验, 对linux的认 阅读全文
posted @ 2018-04-03 10:24 陈惊蛰 阅读(578) 评论(1) 推荐(0) 编辑
摘要:生活中有这样的场景: 我有一件事情需要别人帮忙去办, 但是别人也很忙呀, 所以我只能把任务记载他的任务清单上, 等他一个个扫下来扫到我的并且完成之后再来告诉我. 这其实是一个多线程的问题. 我是线程A, 他是线程B, 这里我是生产者, 他是消费者. 而我在等待他完成我提交的任务之前并不能做什么事情, 阅读全文
posted @ 2018-03-31 16:24 陈惊蛰 阅读(845) 评论(0) 推荐(0) 编辑
摘要:最近将公司的项目用.netcore重写, 服务的http外部接口部分收发消息是DES加解密的, 那么在asp.net core mvc的action处理之前需要加入解密这个步骤. 我第一想到的是用filter的方法来做, 找到了ActionFilter, 重写了OnActionExecuting方法 阅读全文
posted @ 2018-03-31 10:33 陈惊蛰 阅读(563) 评论(0) 推荐(0) 编辑
摘要:我使用的是Pomole.EntityFrameworkCore.MySql 需要将旧项目中的excels表转成实体,其中有一列是json格式的int[] 当遇到第一张表的时候,我使用了这样的方法来读取 但是当我遇到第二张表也是这个结构的时候,我觉得多写这样一段代码,多一个属性的命名很讨厌,而且有误用 阅读全文
posted @ 2018-03-19 09:51 陈惊蛰 阅读(718) 评论(0) 推荐(0) 编辑
摘要:许久没用C#写程序。听说进来发生大事,.NetCore2.0发布了,于是便学习了下,本站也应运而生。 大多数的地方按照官方的文档起步走就可以了,这里谈谈遇到的几个坑。 首先,本站是基于ASP.NetCore2.0和EntityFrameWorkCore.Sqlite的,前端使用了layui,搭建于C 阅读全文
posted @ 2017-10-13 16:38 陈惊蛰 阅读(6634) 评论(0) 推荐(0) 编辑
摘要:首先来聊下高级战争吧Advance Wars,由任天堂旗下的Intelligent Systems开发的战棋游戏。初作诞生于GBA上,后来继续跟进了高战2黑洞崛,而后在下一代掌机DS上也出了三代续作高战DS,以及后来不太一样的毁灭日。本人的高中时代正值GBA横行天下的时候,那时候最喜欢的事情就是晚上 阅读全文
posted @ 2016-06-29 19:48 陈惊蛰 阅读(1035) 评论(2) 推荐(1) 编辑