Nager.PublicSuffix 项目教程
1. 项目的目录结构及介绍
Nager.PublicSuffix 项目的目录结构如下:
Nager.PublicSuffix/
├── .github/
│ └── workflows/
├── src/
│ ├── Nager.PublicSuffix/
│ │ ├── Models/
│ │ ├── Providers/
│ │ ├── Services/
│ │ ├── Nager.PublicSuffix.csproj
│ │ └── Program.cs
│ └── Nager.PublicSuffix.Tests/
│ ├── Nager.PublicSuffix.Tests.csproj
│ └── Tests.cs
├── .gitignore
├── LICENSE
├── Nager.PublicSuffix.sln
└── README.md
目录结构介绍:
- .github/workflows/: 包含 GitHub Actions 的工作流配置文件。
- src/Nager.PublicSuffix/: 项目的主要源代码目录。
- Models/: 包含项目的模型类。
- Providers/: 包含数据提供者的实现。
- Services/: 包含服务类的实现。
- Nager.PublicSuffix.csproj: 项目的 C# 项目文件。
- Program.cs: 项目的启动文件。
- src/Nager.PublicSuffix.Tests/: 包含项目的单元测试代码。
- Nager.PublicSuffix.Tests.csproj: 单元测试的 C# 项目文件。
- Tests.cs: 单元测试代码文件。
- .gitignore: Git 忽略文件配置。
- LICENSE: 项目的开源许可证文件。
- Nager.PublicSuffix.sln: 项目的解决方案文件。
- README.md: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件是 src/Nager.PublicSuffix/Program.cs
。该文件包含了项目的入口点,负责初始化和启动应用程序。
using Nager.PublicSuffix;
public class Program
{
public static async Task Main(string[] args)
{
// 初始化本地文件规则提供者
var localFileRuleProvider = new LocalFileRuleProvider(
@"C:\keatkeat\my-projects\aspnet core\8.0\CSharp12\CSharp12\public_suffix_list.dat"
);
// 构建规则提供者
await localFileRuleProvider.BuildAsync();
// 使用规则提供者解析域名
var domainParser = new DomainParser(localFileRuleProvider);
var domainName = domainParser.Parse("subdomain.example.com");
Console.WriteLine(domainName.RegistrableDomain); // 输出: example.com
}
}
启动文件介绍:
- Main 方法: 项目的入口点,负责初始化规则提供者并解析域名。
- LocalFileRuleProvider: 从本地文件加载公共后缀列表。
- DomainParser: 使用规则提供者解析域名,获取注册域名。
3. 项目的配置文件介绍
Nager.PublicSuffix 项目没有传统的配置文件(如 appsettings.json
),但其配置主要依赖于 LocalFileRuleProvider
提供的规则文件路径。
配置文件路径:
var localFileRuleProvider = new LocalFileRuleProvider(
@"C:\keatkeat\my-projects\aspnet core\8.0\CSharp12\CSharp12\public_suffix_list.dat"
);
配置文件介绍:
- public_suffix_list.dat: 这是一个包含公共后缀列表的文件,项目通过该文件来解析域名。
- LocalFileRuleProvider: 负责加载并解析该文件,提供给
DomainParser
使用。
通过以上配置,项目能够正确解析域名并获取注册域名。