Pixeval.Extensions.Common 4.4.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package Pixeval.Extensions.Common --version 4.4.4
                    
NuGet\Install-Package Pixeval.Extensions.Common -Version 4.4.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pixeval.Extensions.Common" Version="4.4.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pixeval.Extensions.Common" Version="4.4.4" />
                    
Directory.Packages.props
<PackageReference Include="Pixeval.Extensions.Common" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Pixeval.Extensions.Common --version 4.4.4
                    
#r "nuget: Pixeval.Extensions.Common, 4.4.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pixeval.Extensions.Common@4.4.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pixeval.Extensions.Common&version=4.4.4
                    
Install as a Cake Addin
#tool nuget:?package=Pixeval.Extensions.Common&version=4.4.4
                    
Install as a Cake Tool

Pixeval.Extensions

本项目是Pixeval扩展功能的工具项目,被主项目(下称Pixeval)高强度依赖,所以本项目会和Pixeval同步迭代(使用相同的版本号)。

本项目通过NuGet进行分发,在NuGet上有两个包:

  • Pixeval.Extensions.Common:这个包声明了Pixeval与扩展进行通信使用的接口,和一些简单的工具类。这个包会被Pixeval和下面的SDK包引用。
  • Pixeval.Extensions.SDK:这个包对上一个包的接口进行了封装,降低了编写扩展的难度和工作量。扩展的开发者应该引用这个包。

关于向后兼容

本项目正处于早期开发阶段,不能保证向后兼容,但遇到相关问题欢迎与商讨( •̀ ω •́ )✧。

C#/.NET的extension类型对本项目帮助很大,在extension功能发布后势必要对本项目进行全方位的优化,但也会尽量保持向前兼容。

关于扩展系统使用的技术

为了方便以后将Pixeval改写为AOT项目,Pixeval的扩展系统要求加载的扩展也是AOT的,所以扩展系统选择了COM + P/Invoke的技术实现。

.NET在8.0版本才实现了完全支持AOT的COM技术,所以本项目最低支持的.NET SDK是.NET 8。

由于AOT和COM系统的局限性,项目中几乎不能使用反射技术,通信时也不能使用复杂的类型(只有接口和方法,这也是为什么需要SDK项目),但好在除此之外的其他技术并没有多少限制。

为了保持各语言扩展 API 的一致性,本项目使用 .pidl(Pixeval interface definition language)文件定义接口,并统一由 生成器 生成对应语言的接口代码和 SDK。开发者在实现扩展时只需要关注接口定义和 SDK 的使用,不需要关心底层的 COM 和 P/Invoke 细节。

开发扩展

C# 扩展案例

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Pixeval.Extensions.Common:

Package Downloads
Pixeval.Extensions.SDK

Package Description

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Pixeval.Extensions.Common:

Repository Stars
Pixeval/Pixeval
Wow. Yet another Pixiv client!
Version Downloads Last Updated
4.4.5 246 6/15/2026
4.4.4 153 6/10/2026
4.4.3 297 5/22/2026
4.4.2 126 5/22/2026
4.4.1 117 5/21/2026
4.4.0 194 1/12/2026
4.3.11 888 3/29/2025
4.3.9 316 3/10/2025
4.3.9-dev-4 276 3/9/2025
4.3.9-dev-3 193 2/27/2025
4.3.9-dev-2 207 2/27/2025
4.3.9-dev-1 672 2/22/2025
4.3.6 332 2/13/2025
4.3.5-dev-2 219 2/12/2025
4.3.5-dev-1 223 2/2/2025
4.3.4 347 1/13/2025
4.3.3 241 1/5/2025