• C# 多线程访问之 SemaphoreSlim(信号量)【C# 进阶】

    时间:2022-11-07 19:04:57

    SemaphoreSlim 是对可同时访问某一共享资源或资源池的线程数加以限制的 Semaphore 的轻量替代,也可在等待时间预计很短的情况下用于在单个进程内等待。由于 SemaphoreSlim 更加轻量、快速,因此推荐使用,本文也着重介绍。一、简介相较于线程锁的使一块代码只能一个线程访问,Se...

  • C#新语法进阶委托泛型LinqLambda表达式

    时间:2022-10-28 14:59:00

    学习C#开发的程序员们,相信大家也有自己的困惑。C#对于我们来说,一会很熟悉,一会很陌生,当你熟悉的时候,你阅读源码能一目十行,当你很陌生的时候,你十天能看懂一行代码。我们总是伴着梦,一路追寻,一路奔波。确时常忽略了,原来他也在成长。C#(读作“See Sharp”)源于C语言系列,是一种新式编程语...

  • C#进阶系列——DDD领域驱动设计初探(六):领域服务

    时间:2022-09-19 15:24:54

    前言:之前一直在搭建项目架构的代码,有点偏离我们的主题(DDD)了,这篇我们继续来聊聊DDD里面另一个比较重要的知识点:领域服务。关于领域服务的使用,书中也介绍得比较晦涩,在此就根据博主自己的理解谈谈这个知识点的使用。DDD领域驱动设计初探系列文章:C#进阶系列——DDD领域驱动设计初探(一):聚合...

  • 【C#进阶系列】02 PE文件,程序集,托管模块,元数据——还是那个Hello world

    时间:2022-09-18 00:01:41

    好了,还是这张图,还是一样的Hello world。因为本章其实很多都是讲一些命令行编译啊什么鬼的配置类的东西,要用的时候直接百度或者回头查书就可以了,所以了解一下也就行了,也没有记录下来,接下来讲得只是我认为很有用的东西。关于引用请看上图,MyTest程序集下面有个引用,引用里面大家都知道有很多d...

  • 【C#进阶系列】09 关于参数的故事

    时间:2022-09-17 22:21:24

    可选参数和命名参数不多说,上代码,自然懂class Program { static void Main(string[] args) { var troy = new Troy(); troy.HelloWorld();...

  • 【C#进阶系列】03 配置文件管理与程序集的引用版本重定向

    时间:2022-09-12 15:55:40

    先来点与标题不相关的:CLR支持两种程序集:弱命名程序集和强命名程序集。两者的区别在于强命名程序集使用发布者的公钥和私钥进行签名。由于程序集被唯一性地标识,所以当应用程序绑定到强命名程序集时,CLR可以应用一些已知安全的策略。程序集可以采用两种方式部署:私有或者全局。弱命名程序集只能以私有方式部署。...

  • C#进阶系列——DDD领域驱动设计初探(二):仓储Repository(上)

    时间:2022-08-31 14:41:51

    前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repository,为什么Repository会有这么大的争议,博主认为主要原因无非以下两点:一是Repository的真实意图没有理解清楚,导致设计的紊乱,随着项目的横向和纵向...

  • C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用

    时间:2022-08-31 13:40:21

    前言:前篇搭建了下WCF的代码,就提到了DTO的概念,对于为什么要有这么一个DTO的对象,上章可能对于这点不太详尽,在此不厌其烦再来提提它的作用: 从安全上面考虑,领域Model都带有领域业务,让Client端引用Domain Model就意味着Client端可以绕过应用层直接完成业务逻辑的调用,这...

  • C#进阶系列——DDD领域驱动设计初探(一):聚合

    时间:2022-08-31 13:40:15

    前言:又有差不多半个月没写点什么了,感觉这样很对不起自己似的。今天看到一篇博文里面写道:越是忙人越有时间写博客。呵呵,似乎有点道理,博主为了证明自己也是忙人,这不就来学习下DDD这么一个听上去高大上的东西。前面介绍了下MEF和AOP的相关知识,后面打算分享Automapper、仓储模式、WCF等东西...

  • C#进阶系列——DDD领域驱动设计初探(一):聚合

    时间:2022-08-31 12:45:50

    前言:又有差不多半个月没写点什么了,感觉这样很对不起自己似的。今天看到一篇博文里面写道:越是忙人越有时间写博客。呵呵,似乎有点道理,博主为了证明自己也是忙人,这不就来学习下DDD这么一个听上去高大上的东西。前面介绍了下MEF和AOP的相关知识,后面打算分享Automapper、仓储模式、WCF等东西...

  • C#进阶系列——WebApi 跨域问题解决方案:CORS

    时间:2022-08-28 23:41:48

    前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题。本篇主要从实例的角度分享下CORS解决跨域问题一些细节。 WebApi系列文章 C#进阶系列——WebApi接口测试工具:WebApiTestClient C#进阶系列——WebApi 跨域问...

  • 【进阶修炼】——改善C#程序质量(8)

    时间:2022-06-29 03:07:27

    122,以<Company>.<Component>作为命名空间。如Microsoft.Windows.Design。也可以用域名作为空间,如www.microsoft.com,就可以写成com.microsoft.<Component>,这种命名方法在java中...

  • c# 进阶之 WebAPI

    时间:2022-06-24 08:54:48

    REST是设计风格而不是标准。webapi有自己的路由。webservice和wcf的协议都是soap协议,数据的序列化和反序列化都是soap的格式。而webapi是Json的数据传递webapi的优点有哪些?(1)非常适合做http的请求,前端与webapi交互特别方便(2)webapi更轻量因为...

  • halcon与C#混合编程进阶版

    时间:2022-06-14 04:01:30

    这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片。新手来这里:http://www.cnblogs.com/badguy518/p/5515054.htmlhalcon源程序:dev_open_window(0,0,512,512,'black...

  • 【C#进阶系列】12 泛型

    时间:2022-06-05 10:08:12

    泛型是CLR和编程语言提供的一种特殊机制,它用于满足“算法重用” 。可以想象一下一个只有操作的参数的数据类型不同的策略模式,完全可以用泛型来化为一个函数。以下是它的优势:类型安全给泛型算法应用一个具体的数据类型时,如果不兼容这种类型,就会编译错误或者报异常。更清晰的代码减少了强制转换,让代码更简洁更...

  • 【C#进阶系列】20 异常和状态管理

    时间:2022-05-24 14:27:26

    异常就是指成员没有完成它的名称所宣示的行动。publicclassGirl{publicstringName{get;set;}}publicclassTroy{Girlgirl;publicvoidLove(){Console.WriteLine("Troy爱上了"+girl.Name);}}上面...

  • C#进阶之路(一):委托

    时间:2022-05-19 06:30:51

    一、什么是委托简单说它就是一个能把要领当参数通报的东西,而且还知道怎么挪用这个要领,同时也是粒度更小的“接口”(约束了指向要领的签名)。委托是一个类,它界说了要领的类型,使得可以将要领看成另一个要领的参数来进行通报,是种将要领动态地赋给参数的做法。用过C/C++的,对委托不会陌生,委托可以当作函数指...

  • C#进阶系列——WebApi 跨域问题解决方案:CORS(转载)

    时间:2022-05-16 02:45:49

    C#进阶系列——WebApi跨域问题解决方案:CORS 阅读目录一、跨域问题的由来二、跨域问题解决原理三、跨域问题解决细节1、场景描述2、场景测试四、总结正文前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题。本篇主要从实例的角度分享下CORS解...

  • C#进阶系列——WebApi 跨域问题解决方案:CORS

    时间:2022-04-18 03:07:44

    前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题。本篇主要从实例的角度分享下CORS解决跨域问题一些细节。WebApi系列文章C#进阶系列——WebApi接口测试工具:WebApiTestClientC#进阶系列——WebApi跨域问题解决方案...

  • 【C#进阶系列】29 混合线程同步构造

    时间:2022-04-15 15:30:29

    上一章讲了基元线程同步构造,而其它的线程同步构造都是基于这些基元线程同步构造的,并且一般都合并了用户模式和内核模式构造,我们称之为混合线程同步构造。在没有线程竞争时,混合线程提供了基于用户模式构造所具备的性能优势,而多个线程竞争一个构造时,混合线程通过基元内核模式的构造来提供不“自旋”的优势。那么接...