C#/VB.NET 如何在 Word 文档中添加页眉和页脚
页眉位于文档中每个页面的顶部区域,常用于显示文档的附加信息,可以插入时间、图形、公司微标、文档标题、文件名或作者姓名等;页脚位于文档中每个页面的底部的区域,常用于显示文档的附加信息,可以在页脚中插入文本或图形。今天这篇文章就将为大家展示如何以编程的方式在在 Word 文档中添加页眉和页脚。下面是我整 ... »
页眉位于文档中每个页面的顶部区域,常用于显示文档的附加信息,可以插入时间、图形、公司微标、文档标题、文件名或作者姓名等;页脚位于文档中每个页面的底部的区域,常用于显示文档的附加信息,可以在页脚中插入文本或图形。今天这篇文章就将为大家展示如何以编程的方式在在 Word 文档中添加页眉和页脚。下面是我整 ... »
肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应用启动的初始化时间让服务更快可用,同时还能对静态方法进行AOP。 距离上一次发文差不多过去半年了,在 ... »
原文 | Stephen Toub 翻译 | 郑子铭 最后一个有趣的与IndexOf有关的优化。字符串早就有了IndexOf/IndexOfAny/LastIndexOf/LastIndexOfAny,显然对于字符串来说,这都是关于处理字符。当ReadOnlySpan和Span出现时,MemoryE ... »
1、简介 DI:Dependency Injection,即依赖注入,他是IOC的具体实现。 在DI中,底层服务对象不再负责依赖关系的创建,而是交由顶端调用进行管理注入 好处:降低组件之间的耦合度,使代码更加灵活 2、实例 我们举个例子,有个User Login的功能,Login需要通过DB验证,D ... »
1 引用跟踪算法 CLR使用一种引用跟踪算法来确实对象是否回收。 2 根 所有引用类型的变量都叫根。 3 活动根 活动根分为三种: 当前正在执行的方法(或在其调用栈的任何一个方法中) 的局部变量或者参数; 静态变量; 终结队列中的对象。 4 垃圾回收过程 标记阶段 CLR 遍历堆中所有对象,将同步块 ... »
AsyncLocal 用法简介 通过 AsyncLocal 我们可以在一个逻辑上下中维护一份数据,并且在后续代码中都可以访问和修改这份数据。 无论是在新创建的 Task 中还是 await 关键词之后,我们都能够访问前面设置的 AsyncLocal 的数据。 class Program { priv ... »
原文 | Stephen Toub 翻译 | 郑子铭 原始类型和数值 (Primitive Types and Numerics) 我们已经看过了代码生成和GC,线程和矢量化,互操作......让我们把注意力转向系统中的一些基本类型。像int、bool和double这样的基本类型,像Guid和Dat ... »
一个应用要运行起来,往往需要读取很多的预设好的配置信息,根据约定好的信息或方式执行一定的行为。 配置的本质就是软件运行的参数,在一个软件实现中需要的参数非常多,如果我们以 Hard Code(硬编码)的方式写在应用代码中,这样配置就会很乱,而且后续也不容易修改。乱而多,而且不容易修改,这就需要一个统 ... »
前言: 本篇以.Net 7.0.2 CLR 和 OpenJDk19参照,解析下它们各自调用函数的异同。 以下为个人理解。 概述 JDK大约5.9G,CLR大约7.6G,两者相差1.7G左右。 root@tang-virtual-machine:/home/tang# cd jdk-jdk-19-36 ... »
前言 .Net 6 使用 Consul 实现服务注册与发现 看这篇就够了.Net6 使用 Ocelot + Consul 看这篇就够了.Net6 微服务之Polly入门看这篇就够了 书接上文,本文将继续建立在 .Net6 使用 Ocelot + Consul 看这篇就够了文章中的项目基础上来进行O »
原文 | Stephen Toub 翻译 | 郑子铭 矢量化 (Vectorization) SIMD,即单指令多数据 (Single Instruction Multiple Data),是一种处理方式,其中一条指令同时适用于多条数据。你有一个数字列表,你想找到一个特定值的索引?你可以在列表中一次 ... »
标记帮助器不仅可以给目标元素(标记)插入(或修改)属性,插入自定义的HTML内容,在某些需求中还可以替换原来标记的名称。 比如我们在使用 Blazor 时很熟悉的 Component 标记帮助器。在 Razor 文档中你将使用 <Component> 元素来设置要呈现的组件。而在实际处理时,会去掉 ... »
前言 前几章教程我们把ToDoList系统的基本框架搭建好了,现在我们需要根据我们的需求把ToDoList系统所需要的系统集合(相当于关系型数据库中的数据库表)。接下来我们先简单概述一下这个系统主要需要实现的功能以及实现这些功能我们需要设计那些数据库集合。 MongoDB从入门到实战的相关教程 »
前言 最近又在项目中碰到需要将原本单实现的接口改造成多个实现的场景,这里记录一下常见的几种改法。 假设已经存在如下接口ICustomService和其实现CustomService,由于只有一种实现,注入和使用非常容易。 public interface ICustomService { void ... »
JWT只是缩写,全称则是JSON Web Tokens,是目前流行的跨域认证解决方案,是基于开放标准RFC7519,提供一种身份认证与信息交换的解决方案,是一种基于JSON的用于在网络上声明某种主张的令牌(token)。 由于http的连接是状态的特性,server端和client是不 »
我们经常遇到需要定时执行某些任务的情况,比如清理缓存、异步结果轮询等,如果不打算造轮子,那么选择一款合适的定时任务组件就很关键了。所幸,.Net 世界中的选项并不多:) 选型 主要有以下四款: Quartz.Net:移植自 Java 生态的 Quartz,久经考验、成熟稳重,只是个人感觉有点过度设计 ... »
.NET Core 依赖注入的基本用法 话接上篇,这一章介绍 .NET Core 框架自带的轻量级 Ioc 容器下服务使用的一些知识点,大家可以先看看上一篇文章 [ASP.NET Core - 依赖注入(一)] 2.3 服务解析 通过 IServiceCollection 注册了服务之后,可以通过以 ... »
System.Net.Http.HttpClient 类用于发送 HTTP 请求以及从 URI 所标识的资源接收 HTTP 响应。 HttpClient 实例是应用于该实例执行的所有请求的设置集合,每个实例使用自身的连接池,该池将其请求与其他请求隔离开来。 从 .NET Core 2.1 开始,So »
一、碰到的问题 在服务器的文件系统上有一个业务生成的BigTable.json文件,其可能包含的JSON字符串很大,同时里边的集合会包含很多的记录;我们使用以下的代码来反序列化,虽然使用了异步的ReadAllTextAsync来读取文件,但是还是需要将整个的文件内容都读取到内存中,这样会极大的占用服 »
原文 | Stephen Toub 翻译 | 郑子铭 循环提升和克隆 (Loop Hoisting and Cloning) 我们之前看到PGO是如何与循环提升和克隆互动的,这些优化也有其他改进。 从历史上看,JIT对提升的支持仅限于将一个不变量提升到一个层级。 考虑一下这个例子: [Benchma »