随笔分类 - .Net
摘要:一、自定义托管 dll 程序集的查找位置 目前(.Net4.7)能用的有2种: M$ 对 AppDomain.AppendPrivatePath 的替代推荐是涉及到 AppDomainSetup 的一系列东西,很麻烦,必须在 AppDomain 加载前设置好参数,但是当前程序已经在运行了所以这种方法
阅读全文
摘要:最近在一个老外的程序中看到一段代码,其中使用了System.Runtime.InteropServices.MarshalAs方法进行托管代码与非托管代码之间封装数据,感觉很新颖。特意记录下来,供大家参考
阅读全文
摘要:今天有个网友问如何历遍对象的所有公共属性,并且生成XML。采用序列化方式的话比较简单,我写个手工解析的例子,这样能让初学者更加理解也比较灵活,记录一下吧或许会有人用到。 对象模型: public class Master { public string Description { get; set;
阅读全文
摘要:This uses the FastMember's meta-programming API for maximum performance. If you want to restrict it to particular members (or enforce the order), then
阅读全文
摘要:今天我们购买的每台电脑都有一个多核心的 CPU,允许它并行执行多个指令。操作系统通过将进程调度到不同的内核来发挥这个结构的优点。 然而,还可以通过异步 I/O 操作和并行处理来帮助我们提高单个应用程序的性能。 在.NET Core中,任务 (tasks) 是并发编程的主要抽象表述,但还有其他支撑类可
阅读全文
摘要:为什么选择.NETCore? 学习新的开发框架是一项巨大的投资。您需要学习如何在新框架中编写,构建,测试,部署和维护应用程序。作为开发人员,有许多框架可供选择,很难知道什么是最适合的。即使您正在使用.NET开发软件,.NET Core也不相同,您需要花时间学习使用它的工具和技术。为了理解为什么.NE
阅读全文
摘要:目录 概念 实现方式 .Net平台的切面实现 PostSharp示例 概念 Aspect-Oriented Programming(AOP):想想OOP是不是有些熟悉,AOP翻译过来的意思就是面向切面编程。先来关注一下涉及到的以下几个概念点。 横切关注点: 存在于项目的绝大多数业务中可以通用的一些辅
阅读全文
摘要:前言 SystemDomain, SharedDomain, and DefaultDomain。 对象布局和内存细节。 方法表布局。 方法分派(Method dispatching)。 因为公共语言运行时(CLR)即将成为在Windows上创建应用程序的主角级基础架构, 多掌握点关于CLR的深度认
阅读全文
摘要:1.引言 RabbitMQ——Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ 是一个由 Erlang 语言开发的AMQP(高级消息队列协议)的开源实现,其内部结构如下: RabbitMQ作为一个消息代理,主要和消息打交道,负责接收并转发消
阅读全文
摘要:1 什么是 MQTT ? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是 IBM 开发的一个即时通讯协议,有可能成为物联网的重要组成部分。MQTT 是基于二进制消息的发布/订阅编程模式的消息协议,如今已经成为 OASIS 规范,由于规范很简单,
阅读全文
摘要:长久以来,.Net开发人员都非常羡慕Java有Netty这样,高效,稳定又易用的网络通信基础框架。终于微软的Azure团队,使用C#实现的Netty的版本发布。不但使用了C#和.Net平台的技术特点,并且保留了Netty原来绝大部分的编程接口。让我们在使用时,完全可以依照Netty官方的教程来学习和
阅读全文
摘要:说到Socket,想必大家都或多或少有所涉及,从最初的计算机网络课程,讲述了tcp协议,而Socket就是对协议的进一步封装,使我们开发人员能够更加容易轻松的进行软件之间的通信。 这个星期刚好接受一个共享车位锁的项目,需要使用Socket与硬件进行通信控制,说白了也就是给锁发送指令,控制其打开或者关
阅读全文
摘要:async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了。但是这也给我们编程埋下了一些隐患,有时候可能会产生一些我们自己都不知道怎么产生的Bug,特别是如果连线程基础没有理解的情况下,更不
阅读全文
摘要:本篇文章主要采用理论和代码实例相结合方式来论述委托和事件,涉及到一些边界技术,如软件架构的OCP原则(开-闭原则), 软件架构解耦,设计模式(Sender-Order)和事件驱动模型,有一定难度和深度,不适合初级者。 第一部份 委托 关于委托内容,主要围绕下图来论述。 一 委托是什么(what) (
阅读全文
摘要:1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉。事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 我们来看看事件总线的处理流程: 了解了事件总线的基本概念和处理流程
阅读全文
摘要:前言 其实从2013开始就想用Xamarin,奈何 当初收费一座大山压在身上 完全无法见得庐山真面目 后面2015,微软收购Xamarin,没过多久就宣布对个人用户免费..那个兴奋劲就别提了.. 兴奋的我电脑都重装了好几遍...(因为装Xamarin搞的各种冲突)..奈何..资源有限 国内没镜像 F
阅读全文
摘要:最近我正在处理C#中关于timeout行为的一些bug。解决方案非常有意思,所以我在这里分享给广大博友们。 我要处理的是下面这些情况: 我们做了一个应用程序,程序中有这么一个模块,它的功能向用户显示一个消息对话框,15秒后再自动关闭该对话框。但是,如果用户手动关闭对话框,则在timeout时我们无需
阅读全文
摘要:今天记录一下异步多线程的进阶历史,以及简单的使用方法 主要还是以Task,Parallel为主,毕竟用的比较多的现在就是这些了,再往前去的,除非是老项目,不然真的应该是挺少了,大概有个概念,就当了解一下进化史了 1:委托异步多线程,所有的异步都是基于委托来实现的 2:多线程的最老版本:Thread(
阅读全文
摘要:摘要:作为一名 C# 开发人员,您可能已经在编写一些函数式代码而没有意识到这一点。本文将介绍一些您已经在C#中使用的函数方法,以及 C# 7 中对函数式编程的一些改进。 尽管 .NET 框架的函数式编程语言是F#,同时,C# 是一个面向对象的语言,但它也有很多可以用于函数式编程技术的特性。你可能已经
阅读全文
摘要:VS 2017 的 C# 7.0 中引入了本地方法,本地方法是一种语法糖,允许我们在方法内定义本地方法。更加类似于函数式语言,但是,本质上还是基于面向对象实现的。 1. 本地方法 先看一个示例: 在此示例中,在 Main 方法内,嵌套定义了两个方法:Add 和 Multiply。这个方法可以在 Ma
阅读全文