ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建。 主要分为三部:配置数据源 -> ConfigurationBuilder -> 使用。 数据源可来自字典或配置文件。 数据源要么继承 IConfigurationSource ,要么从配置文件中读取。 1,来自字典 我们先使用字典存储键值对,来设置配置, test = 配置,然后使用 ConfigurationBuilder.Add() 方法添加数据源, Add 方法可以添加继承了 IConfiguratio…

2020年6月5日 1条评论 2284点热度 0人点赞 痴者工良 阅读全文

Blazor事件分类 Blazor 触发方式 HTML标准事件分类 1)Window 事件属性 2)表单事件 3)键盘事件 4)鼠标事件 5)媒介事件 Blazor 事件分类 Blazor 组件中, HTML 元素可以触发事件,使用 @on{事件名} 格式绑定触发的事件。 @on{}是触发形式,指明如何触发。 例如: <button @onclick="MyEvent">按钮</button> @code{ private void MyEvent() { } } Blazor 中,HTML…

2020年5月11日 0条评论 4463点热度 2人点赞 痴者工良 阅读全文

级联值和参数 <CascadingValue Value="@_grandValue" Name="GrandValue"> <Parent /> </CascadingValue> 当数据要从父子组件间流通时,我们有多种方法可以传递参数。但是如果层级超过两个的时候,就那么方便了。如果出现多个子组件的时候,就更加爆炸了。 级联值和参数提供了一种方便的方法,使祖先组件为其所有子代组件提供值,从而解决了上述问题。 级联值和参数还提供了一种协调组件的方法。 CascadingValue…

2020年5月11日 0条评论 5551点热度 0人点赞 痴者工良 阅读全文

子组件无法直接向父组件传递数据,所以先在子组件定义回调事件,然后父组件引用子组件时,将父组件的方法绑定到子组件中,然后在子组件触发回调即可。 子组件 Child.razor : <input @bind="Value" /> <button @onclick="StartEvent">传递到父组件</button> @code{ private string Value; [Parameter] public EventCallback C…

2020年5月11日 0条评论 3440点热度 2人点赞 痴者工良 阅读全文

Natasha 群5月11日吹水备忘录 HTTP/2 新特性 关于 HTTP/2 HTTP/2 并不是对 HTTP 协议的彻底重写,HTTP/2 关注的重点是性能、低延迟、降低网络和服务器资源使用等;与 HTTP 的请求方法、状态代码和语义等是相同的。 HTTP/2 由两个部分组成: 超文本传输协议(version 2) -RFC7540 HPACK (HTTP/2 头部压缩算法) -RFC7541 HTTP/2 的主要特性体现在 HPACK 中。 可参考:https://www.jianshu.com/p/f44…

2020年5月11日 0条评论 2950点热度 1人点赞 痴者工良 阅读全文

// 二进制位数长度 private int binaryLength = 16; // 将数字转为 N 位二进制,并且前面补足 0 private byte[] ToBinary(int num) { byte[] bs = new byte[binaryLength]; int n = binaryLength; char[] str = Convert.ToString(num, 2).ToCharArray();[......]继续阅读

2020年5月10日 0条评论 2416点热度 1人点赞 痴者工良 阅读全文

目录 关于组件 组件类 静态资产 路由与路由参数 组件参数 请勿创建会写入其自己的组参数属性的组件 子内容 属性展开 任意参数 捕获对组件的引用 在外部调用组件方法以更新状态 使用 @ 键控制是否保留元素和组件 指定基类 指定属性 导入组件 原始 HTML 官方文档原文位置: https://docs.microsoft.com/zh-cn/aspnet/core/blazor/components?view=aspnetcore-3.1 本文并不是独立教程的文章,而是[......] 继续阅读

2020年5月10日 0条评论 1914点热度 1人点赞 痴者工良 阅读全文

使用继承的的方式,缺点是添加功能是,上下层都需要改变; 同时为了避免为外界透露细节; 松耦合,避免两者出现静态的联系; 有接口和实现如下: public interface ITest { void A(); void B(); } public class T1 : ITest { public void A() { } public void B() { } } public class T2 : ITest { public void A()[......]继续阅读

2020年5月8日 0条评论 2300点热度 0人点赞 痴者工良 阅读全文

静态类的构造函数不能加上访问修饰符,也不能被外界调用,也没有参数; 静态类的构造函数在创建第一个实例或调用第一个成员前触发调用; 静态类不能被继承; 而单例模式的类型,是一个普通的类型,可以被实例化,能够有多个构造函数;能够被继承; [......] 继续阅读

2020年5月7日 0条评论 2310点热度 0人点赞 痴者工良 阅读全文

假设有一段代码原本在 Windows 上运行,继承了接口 IDo,但是现在要迁移到 Linux 运行,可是某些地方不兼容,而同事已经将代码写好了,但是没有继承在 Windows 下运行的 IDo 接口,又不能改动以前的代码,必须保证都兼容。 原代码如下: // 只接受 Ido 的类型 public class MyClass { IDo _do; public MyClass(IDo ido) { _do = ido; } public void Run()[......]继续阅读

2020年5月7日 1条评论 2530点热度 0人点赞 痴者工良 阅读全文

除了手动实现单例模式,也可以使用 Lazy 泛型实现单例模式。 public sealed class Singleton { private static readonly Lazy lazy = new Lazy(() => new Singleton()); public static Singleton Instance { get { return lazy.Value; } } private Singleton() { } } [......] 继续阅读

2020年5月7日 0条评论 3365点热度 0人点赞 痴者工良 阅读全文

工厂模式和抽象工厂模式,都是避免调用者直接 new 一个新的实例,预先将创建逻辑编写在工厂代码中,并且对实例进行和一些配置,然后分配调用者使用。 原有代码: HttpRequest 作用是检查网址是否能够访问以及健康状态。 using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; namespace Children { class Pr…

2020年5月7日 0条评论 2096点热度 0人点赞 痴者工良 阅读全文

前言 async await 从以往知识推导 创建异步任务 创建异步任务并返回Task 异步改同步 说说 await Task 说说 async Task<TResult> 同步异步? Task封装异步任务 关于跳到 await 变异步 为什么出现一层层的 await 前言 扯淡了 17 篇,这篇终于开始学习 async 和 await 了,有了前面的基础,来理解 async 和 await 就容易理解多了。 这一篇一定要按照每一个示例,去写代码、执行、输出结果,自己尝试分析思路。 async 微软文档…

2020年5月3日 0条评论 2674点热度 1人点赞 痴者工良 阅读全文

前言 本篇内容是小总结和过渡,看完这篇后,就要开始继续学习 C# 多线程中的知识点啦~。 前面,经过 16 篇的学习,我们学习了多线程、锁、线程池、任务、同步、异步等知识,还没有使用到 async、await 这些关键字。 有同学问,现在随便拉一个开源项目,里面几乎都是 async/await 这些组成;使用了 async/await ,结果比不用更加耗性能了;ASP.NET Core 中的管道,异步,回调这些又是啥? 要搞清楚这些,就要好好了解 Task(任务),先别纠结什么关键字,也不用下别人的项目,然后掉头发…

2020年5月3日 0条评论 1992点热度 0人点赞 痴者工良 阅读全文

前言 节点 Then Parallel Schedule Delay 试用一下 顺序节点 并行任务 编写工作流 接口构建器 工作流构建器 依赖注入 实现工作流解析 前言 前面学习了很多多线程和任务的基础知识,这里要来实践一下啦。通过本篇教程,你可以写出一个简单的工作流引擎。 本篇教程内容完成是基于任务的,只需要看过笔者的三篇关于异步的文章,掌握 C# 基础,即可轻松完成。 C#多线程(13):任务基础① C#多线程(14):任务基础② C#多线程(15):任务基础③ 由于本篇文章编写的工作流程序,主要使用任务,有些…

2020年4月30日 0条评论 3765点热度 5人点赞 痴者工良 阅读全文

TaskAwaiter 延续的另一种方法 另一种创建任务的方法 实现一个支持同步和异步任务的类型 Task.FromCanceled() 如何在内部取消任务 Yield 关键字 补充知识点 任务基础一共三篇,本篇是第三篇,之后开始学习异步编程、并发、异步I/O的知识。 本篇会继续讲述 Task 的一些 API 和常用的操作。 TaskAwaiter 先说一下 TaskAwaiter,TaskAwaiter 表示等待异步任务完成的对象并为结果提供参数。 Task 有个 GetAwaiter() 方法,会返回TaskA…

2020年4月29日 3条评论 2463点热度 0人点赞 痴者工良 阅读全文

判断任务状态 再说父子任务 组合任务/延续任务 复杂的延续任务 并行(异步)处理任务 并行(同步)处理任务 并行任务的 Task.WhenAny 并行任务状态 循环中值变化问题 定时任务 TaskScheduler 类 上一篇,我们学习了任务的基础,学会多种方式场景任务和执行,异步获取返回结果等。上一篇讲述的知识比较多,这一篇只要是代码实践和示例操作。 判断任务状态 属性 说明 IsCanceled 获取此 Task 实例是否由于被取消的原因而已完成执行。 IsCompleted 获取一个值,它表示是否已完成任务。…

2020年4月28日 0条评论 2565点热度 0人点赞 痴者工良 阅读全文

多线程编程 多线程编程模式 探究优点 任务操作 两者创建任务的方式 Task.Run() 创建任务 取消任务和控制任务的创建 任务返回结果以及异步获取返回结果 捕获任务异常 全局捕获任务异常 多线程编程 多线程编程模式 .NET 中,有三种异步编程模式,分别是基于任务的异步模式(TAP)、基于事件的异步模式(EAP)、异步编程模式(APM)。 基于任务的异步模式 (TAP) :.NET 推荐使用的异步编程方法,该模式使用单一方法表示异步操作的开始和完成。包括我们常用的 async 、await 关键字,属于该模式的…

2020年4月28日 0条评论 2062点热度 0人点赞 痴者工良 阅读全文

线程池 ThreadPool 常用属性和方法 线程池说明和示例 线程池线程数 线程池线程数说明 不支持的线程池异步委托 任务取消功能 计时器 线程池 线程池全称为托管线程池,线程池受 .NET 通用语言运行时(CLR)管理,线程的生命周期由 CLR 处理,因此我们可以专注于实现任务,而不需要理会线程管理。 线程池的应用场景:任务并行库 (TPL)操作、异步 I/O 完成、计时器回调、注册的等待操作、使用委托的异步方法调用和套接字连接。 ThreadPool 常用属性和方法 属性: 属性 说明 CompletedWo…

2020年4月27日 0条评论 2132点热度 0人点赞 痴者工良 阅读全文

前言 volatile 关键字 三种常用等待 再说自旋和阻塞 SpinWait 结构 属性和方法 自旋示例 新的实现 SpinLock 结构 属性和方法 示例 等待性能对比 前面我们学习了很多用于线程管理的 类型,也学习了多种线程同步的使用方法,这一篇主要讲述线程等待相关的内容。 在笔者认真探究多线程前,只会new Thread;锁?Lock;线程等待?Thread.Sleep()。 前面已经探究了创建线程的创建姿势和各种锁的使用,也学习了很多类型,也使用到了很多种等待方法,例如 Thread.Sleep()、Th…

2020年4月26日 0条评论 2351点热度 0人点赞 痴者工良 阅读全文
1131415161726