HtmlAgilityPack介绍HtmlAgilityPack是一个专门用来解析Html的库,它可以使用xml的方式来解析html。有人说了,html本身不就是xml?是的,html就是xml,但是html很宽松,没有关闭的节点也可以用,还有一些其他的内容比如js夹杂在里面。如果直接使用xml解析库的话9成会报错的。而HtmlAgilityPack会去处理这些问题,把Html转成一个接近标准的xml来供我们使用。基本用法主要就是doc.LoadHtml(html);这里有个重载是doc.Load(),里面可以直接放url,也可以放Stream。我们这里使用LoadHtml直接加载html内容
Newtonsoft.Json反序列化对象为JArray ,JObject,具体该如何读取属性,请看以下代码示例吧。/* JArray 数组*/string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aaa2','b':'bbb2','c':'ccc2'}]";#region oneJArray ja = (JArray)J
获取第一张图片要我们获得到的数据是一段HTML文本、也许这段文本里面有许多图片、需要截取一张作为标题图片、也就是做为主图、这时就可以用到下面这个方法获取到第一张图片。/// <summary> /// 取得HTML中第一张图片的 URL。 /// </summary> /// <param name="sHtmlText">HTML代码</param> /// <returns>图片的URL列表</returns> public static string GetHtmlImageUrl(string
using System;using System.Diagnostics;using System.IO;using System.Text.Encodings.Web;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Html;using Microsoft.AspNetCore.Mvc.Razor.Infrastructure;using Microsoft.AspNetCore.Mvc.Razor.TagHelpers;using Microsoft.AspNetCore.Mvc.Routing;using Mi
上一篇介绍Entity Framework值转换器以及内置值转换器的相关内容。这一篇将介绍如何自定义值转换器。对于使用值转换器的属性,可以按正常方式配置这些层面,并将其应用于转换后的数据库类型。 例如,在将枚举转换为字符串时,可以指定数据库列应为非 Unicode,并且最多可存储20个字符。常规的配置方法如下:protected override void OnModelCreating(ModelBuilder modelBuilder){ modelBuilder .Entity<Rider>() .Property(e => e.Mou
Entity Framework允许使用不同的转换器,在保存和读取数据字段时将存储格式转换为目标对象。使用值转换器可以免去手动变更字段类型,自动实现数据存取的格式转换,为EF的使用带来很大方便。值转换器允许在读取或写入数据库时转换属性值。 此转换可以从一个值转换为同一类型的另一个值 (例如,将字符串) 或从一种类型的值加密为另一种类型的值 (例如,在数据库中将枚举值与字符串相互转换。 )Entity framework值转换器概述值转换器以和的形式指定 ModelClrType ProviderClrType 。 模型类型是实体类型中的属性的 .NET 类型。 提
In this authentication tutorial covering ASP.NET Core and SignalR apps, we will explore how ASP.NET Core allows you to implement authentication using different schemes. We will start with cookie based authentication, discuss different authentication schemes followed by JWT Bearer tokens.Early on thi
Newtonsoft.Json在反序列化int的时候默认将空字符串识别为null,抛出异常。在WebApi的传参中是一个极大的困扰。问题就在于int.parse("")会报错。下面是几种常见的数字转换场景:> JsonConvert.DeserializeObject<int>(“4.5”)失败.> JToken.Parse(“4.5”).ToObject<int>()成功并返回4.> JsonConvert.DeserializeObject<uint>(“4.5”)成功并返回4.> JsonConvert.DeserializeO
Microsoft在最新的C#版本中引入了Source Generator。这是一项新功能,可以让我们在代码编译时生成源代码。在本文中,我将介绍四种C#中的代码生成方式,以简化我们的日常工作。然后,您可以视情况选择正确的方法。在 .NET 中,我们有以下几种方法来帮助我们生成代码:Code snippets.Reflection.T4 Template.[New] Source Generators in .NET 5.这四种方法的特点与优劣对比:方法场景优点缺点Code Snippets以特定格式创建代码块,例如属性,方法和类等。节省键入重复代码块的时间。仅适用于特定格式。无法自动更新。Re
Microsoft在最新的C#版本中引入了Source Generator。这是一项新功能,可以让我们在代码编译时生成源代码。在本文中,我将介绍四种C#中的代码生成方式,以简化我们的日常工作。然后,您可以视情况选择正确的方法。在 .NET 中,我们有以下几种方法来帮助我们生成代码:Code snippets.Reflection.T4 Template.[New] Source Generators in .NET 5.应该还有更多,但本文将介绍T4模板的使用。T4 TemplateT4 Text Template是文本块和可以生成文本文件的控制逻辑的混合体。T4表示text template