摘要: Yarp是微软开源的一个用.net实现的反向代理工具包 , 仓库地址 https://github.com/microsoft/reverse-proxy 官方默认使用配置文件配置路由,有老哥把它集成到数据库中做成了可配置热更新的方式 : https://www.cnblogs.com/fansha 阅读全文
posted @ 2021-04-19 15:43 KavinDavid 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 这段时间闲赋在家,感觉手痒,故想折腾一些东西. 由于之前移植了一个c#版本的spring cloud feign客户端(https://github.com/daixinkai/feign.net),所以想弄个配套的服务端动态接口,实现服务即接口的功能.虽然ABP框架内部包含一个功能强大的Dynam 阅读全文
posted @ 2019-09-27 11:44 KavinDavid 阅读(922) 评论(2) 推荐(0) 编辑
摘要: 之前因为工作原因使用spring cloud全家桶开发过若干项目,发现其中的feign非常好用,以前开发接口客户端的时候都是重复使用HttpClient实现业务,每次新增接口都十分繁琐,故萌生了自定义一个feign.net的想法,直到最近辞去工作后有了时间着手开发. 关于feign的介绍就不多说了, 阅读全文
posted @ 2019-08-27 12:08 KavinDavid 阅读(3690) 评论(32) 推荐(35) 编辑
摘要: 最近用到了App_Code文件夹,想要实现动态编译文件的方式,即替换文件夹中的类文件从而达到实时修改代码的效果,类似web.config,网上查到的资料基本都是把文件夹中的类文件修改属性为"编译",这跟我想要的效果不一样,但是不这么做的话在VS中无法调用,想来想去只能使用反射+Expression+ 阅读全文
posted @ 2016-12-06 15:47 KavinDavid 阅读(305) 评论(0) 推荐(0) 编辑
摘要: Aop注入有2种方式:动态注入和静态注入,其中动态注入有很多实现了 动态注入有几种方式: 这里主要介绍静态注入 起初的想法是实现一种功能,自动给对象的属性一个默认值,想来想去没有什么好的解决方法,参考资料后决定使用Mono.Cecil修改生成的程序集来实现! 先定义一个接口 定义一个描述类: 定义一 阅读全文
posted @ 2016-05-11 09:40 KavinDavid 阅读(3131) 评论(4) 推荐(4) 编辑
摘要: using System; using System.Collections.Generic; using System.Threading.Tasks; namespace System { /// /// 一个接口,表示缓存 /// /// /// public interface ICache : IEnumerable> ... 阅读全文
posted @ 2016-05-11 09:34 KavinDavid 阅读(393) 评论(0) 推荐(0) 编辑
摘要: IoC是个好东西,但是为了这个功能而使用类似 Castle 这种大型框架的话,感觉还是不大好 代码是之前写的,一直没详细搞,今天整理了一下,感觉挺实用的. IoC定义接口: IoC解析接口: 具体实现: using System; using System.Collections.Generic; 阅读全文
posted @ 2016-05-10 20:08 KavinDavid 阅读(1591) 评论(3) 推荐(4) 编辑
摘要: 在自己研究ORM之前,也使用过几个成熟的ORM方案,例如:EntityFramework,PetaPoco,Dapper 等,用是很好用,但是对自己来说总是不那么方便,EF比较笨重,Dapper要自定义扩展等等,所以萌发了开发适合自己的ORM的想法,因为未起名字,所以下文所有地方都使用MyORM来代 阅读全文
posted @ 2016-02-18 17:35 KavinDavid 阅读(2410) 评论(5) 推荐(3) 编辑
摘要: 在项目中使用异步(async await)的时候发现一个现象,HttpContext.Current为null,导致一系列的问题. 上网查了一些资料后找到了一个对象: System.Threading.SynchronizationContext (提供在各种同步模型中传播同步上下文的基本功能。)... 阅读全文
posted @ 2016-01-09 15:17 KavinDavid 阅读(6861) 评论(1) 推荐(2) 编辑
摘要: 撸主是一个新手,最近几天在研究微信服务号交互,上网搜了搜C#的代码,再结合自己的习惯,下面把代码解析一下,其中有些代码非本人原创。 首先,你要有个公众服务号,只有服务号才可以自定义菜单,没有条件的可以申请订阅号,然后再申请测试服务号。 微信调用服务端的接口其实分为2个部分,第一,验证此消息是否是微信发出来的,这通过get参数获取,像这样"?signature=eebf87348f23a73debd0e8a4235bb4e798099365&echostr=5964279561876822008&timestamp=1388992504&nonce=138866 阅读全文
posted @ 2014-01-08 11:13 KavinDavid 阅读(466) 评论(0) 推荐(2) 编辑