Newtonsoft.NET 基本使用

简介 JSON是一种常用的轻量级数据交换格式。与XML相比,JSON无论是体积还是可读性都更好,所以在网络数据传输和应用程序中被广泛的应用。 那么,.NET平台使用最广泛的JSON库是什么呢?自然要数Newtonsoft.NET了,打开nuget包管理器第一个就是,在所有包下载量排行中排名第一。使用简单,性能可靠,文档也很齐全。 使用 使用JSON最常用的就是对象的序列化和反序列化。 先来看最基本的使用 1 2 3 4 5 6 7 // 先定义一个类 public class TestJsonDeseClass { public Guid MessageGuid { get; set; } public string Message { get; set; } } 1 2 3 4 5 6 7 8 TestJsonDeseClass test = new TestJsonDeseClass() { MessageGuid = Guid.NewGuid(), Message = "Test Message" }; string json = JsonConvert.SerializeObject(test); TestJsonDeseClass des = JsonConvert.DeserializeObject<TestJsonDeseClass>(json); 只需要将类的成员属性设置为get和set就可以了,反序列化的时候,Json.NET会自动根据成员的名字为对象的成员赋值。 ...

二月 22, 2020 · 3 分钟 · 1286 字

Stylet 框架体验

简介 Stylet是一个轻量且功能强大的MVVM框架。支持 .NET 4.5+ 和 .NET Core 3.0+。 Stylet的作者也是受到Caliburn.Micro的启发,并且在CM的基础上做了许多改进。所以Stylet使用起来感觉和Caliburn.Micro差别不是很大,但又有着一些不同。 项目结构 这里选择创建一个 .NET Core 的 WPF 项目。 这里项目结构风格和Caliburn.Micro类似,示例源代码 虽然Stylet官方给出的例子里面View和ViewModel是放在一起的,但经过实际使用后发现采用CM的风格也是可以的。依照习惯,将Views和ViewModels分别放在两个文件夹中。 ...

十二月 12, 2019 · 5 分钟 · 2493 字

使用 Named Pipe 进行进程间通讯

这段时间公司的一个项目打算使用Named Pipe进行进程间的通讯,刚好花了点时间了解了一下,这里做一下笔记。 Named Pipe(命名管道),顾名思义,是通过在两个进程间搭建一个管道来进行通讯,这种方式的好处在于两者可以进行全双工的通讯,服务端也可以通过管道向客户端发送消息,对于两个进程之间的通讯来说再合适不过了,使用起来也相对比较灵活。 ...

十一月 15, 2019 · 3 分钟 · 1285 字

Hprose C# 初探

简介 Hprose(High Performance Remote Object Service Engine)是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。 也是一个跨语言的RPC框架,但由于库的质量参差不齐,一些语言的库并不完善。这里以C#为例来实现一个简单的服务端和客户端程序。 ...

八月 19, 2019 · 2 分钟 · 809 字

Thrift C# 初探

简介 Thrift是由Facebook为“大规模跨语言服务开发”而开发的一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。目前被作为一个RPC框架使用。 下载 使用之前需要先下载Thrift的源代码和Thrift编译器。 下载源代码后解压,进入到thrift-0.12.0\lib\csharp\src目录下,打开Thrift.sln,根据需要编译相应的库,这里选择Thrift.45,即.NET 4.5可以使用的库,编译生成Thrift45.dll。 ...

八月 19, 2019 · 3 分钟 · 1318 字

gRPC C# 初探

简介 gRPC是Google开源的一个现代化、高性能的RPC框架,基于HTTP/2标准设计,同时提供多个语言版本,并支持跨语言调用,可以在任何环境中运行。 创建项目 新建解决方案,包含3个项目 gRpcSample 类库,gRPC生成的接口,Server接口、Client接口等 server 控制台程序,服务端 client 控制台程序,客户端 分别给3个项目安装Nuget程序包Grpc并安装所需依赖,然后为gRpcSample项目安装Grpc.Tools和Google.ProtoBuf程序包。 ...

八月 18, 2019 · 3 分钟 · 1363 字

WPF和MFC进程间传递数据

进程间传递数据的方法 在进程间传递数据也就意味着两个不同的应用程序之间的通讯,大家可能会想到使用消息队列(Message Queue)来作为解决方案,当然这可能是最优解,然而这里我要讲的是另外一种方法,通过Windows的消息机制来传递数据,内容比较硬核。 ...

五月 27, 2019 · 3 分钟 · 1339 字

WPF如何处理Windows消息

发送消息到指定窗口 发送消息相对来说比较简单,这里先讲,这里需要用到两个Windows的API 1 2 3 4 5 6 7 8 9 10 11 12 // 查找指定窗口 [DllImport("User32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); //消息发送API [DllImport("User32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)] public static extern int SendMessage( IntPtr hWnd, // 信息发往的窗口的句柄 int Msg, // 消息ID IntPtr wParam, // 参数1 IntPtr lParam // 参数2 ); FindWindow就是根据窗口的名字去找到相应的窗口句柄,SendMessage就是发送消息到指定窗口了,写过MFC的应该不陌生 ...

五月 26, 2019 · 2 分钟 · 739 字

Markdown 常用语法备忘

标题 1 2 3 4 5 6 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 也可以使用闭合方式的标题,结尾的#可以不必和开头一致 1 2 3 # 一级标题 # ## 二级标题 ## ... 另一种方式 ...

五月 9, 2019 · 5 分钟 · 2368 字

好用的 Markdown 编辑器 - 全平台

桌面端 Typora 收费,支持 Mac, Windows, Linux MarkText 支持 Mac, Windows, Linux iA Writer 收费, 支持 Mac, Windows 移动端 iA Writer iOS - 收费 Android - 免费 熊掌记 支持 Mac, iOS, 可免费使用,部分功能需要订购 笔记软件 Joplin 支持 Windows, Mac, Linux, Android, iOS 真正的全平台,支持Markdown语法,可以配合OneDrive或者WebDav同步笔记 这里推荐使用坚果云做同步盘。 ...

四月 25, 2019 · 1 分钟 · 131 字