VaraniumSharp 5.3.0

dotnet add package VaraniumSharp --version 5.3.0                
NuGet\Install-Package VaraniumSharp -Version 5.3.0                
该命令旨在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="VaraniumSharp" Version="5.3.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以便引用该软件包。
paket add VaraniumSharp --version 5.3.0                
#r "nuget: VaraniumSharp, 5.3.0"                
#r 指令可用于 F# Interactive 和多语言笔记本。将其复制到交互式工具或脚本的源代码中,以引用该软件包。
// Install VaraniumSharp as a Cake Addin
#addin nuget:?package=VaraniumSharp&version=5.3.0

// Install VaraniumSharp as a Cake Tool
#tool nuget:?package=VaraniumSharp&version=5.3.0                

VaraniumSharp

Build status NuGet Coverage Status CodeFactor

VaraniumSharp 是一个非常简单的助手库,旨在拥有可重用、可靠的组件。它被编写为不依赖于任何其他库,因此可以轻松地将其放入任何项目中以获取其所提供的功能。

功能

  • 提供辅助属性以实现基于属性的依赖注入。注入由额外的软件包处理,从而实现提供方中立
  • 提供不同类型的缓存,包括引用计数缓存
  • 为 PackageManager 提供一个接口
  • 提供一个根据某些值对内容进行优先级排序的集合
  • 提供并发助手,包括可处置的 SemaphoreSlim 以便于简单使用
  • 提供创建可重新配置设置类的基类,允许在取消时轻松回滚设置值
  • 提供一些封装基本功能的扩展方法
  • 提供对静态 Microsoft 类型的各种封装,以便在依赖注入系统中使用
  • 基于 Microsoft.Extensions.Logging 提供静态日志记录器。日志记录器主要存在于抽象用户的日志框架与 VaraniumSharp 库之间,以便它们可以记录到用户首选的日志记录器。

要求

要利用 VaraniumSharp 提供的依赖注入属性,需要一个包装 DI 框架的包。目前,VaraniumSharp 框架支持两个这样的包,一个用于 DryIoC,另一个用于 Microsoft ServiceCollection。也很容易通过简单地实现 VaraniumSharp.DependencyInjection.AutomaticContainerRegistration 类来为您首选的提供程序创建自定义包装,这个类可以直接在项目中实现,或者作为一个额外的库来实现。要了解如何实现此接口,请参考现有的任何一个包。

基本设置

VaraniumSharp 大部分的功能可以直接利用,但是要使项目中的 DI 属性生效,需要几个步骤。

向您想要添加到 DI 容器的类中添加一个属性。有两种主要属性,具有各种属性,更多详情请参阅 文档

// The attribute tells the DI system to create a registration fo the TabWindowContext for the interface ITabWindowContext
[AutomaticContainerRegistration(typeof(ITabWindowContext))]
public sealed class TabWindowContext : ITabWindowContext

接下来,在应用程序启动期间,将包含可注入类的 DLL 装载到 AppDomain 中,然后创建容器,并请求设置它。之后,您可以从容器中解析应用程序的主要部分并执行它。

// It is required to pre-load the assemblies that are auto-injected by VaraniumSharp otherwise their injections won't be picked up
AppDomain.CurrentDomain.Load(new AssemblyName("VaraniumSharp.WinUI"));

// Set up your IoC container and request that all classes are registered
var containerSetup = new ContainerSetup();
containerSetup.RetrieveClassesRequiringRegistration(true);
containerSetup.RetrieveConcretionClassesRequiringRegistration(true);

框架库

依赖注入

前端

包装器

已弃用

文档

有关库的详细概述,请参阅我们的 文档

注意

随着 VaraniumSharp 2.0.0 的发布,我们将转向 .NetStandard2.0,因为这支持所有 .Net 4.6.1+ 框架库,并允许利用 DotNet Core2.0+ 的功能。如果需要旧版本,请提交问题并请求支持,我们愿意适当进行多目标平台支持(注意,由于缺少库,无法支持 DotNet Core 1.x)

图标

Sproutparkjisun 来自 Noun Project

产品 兼容和附加的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 兼容。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在软件包中)
更多信息关于 目标框架.NET Standard

NuGet 软件包 (10)

显示依赖于 VaraniumSharp 的前 5 个 NuGet 软件包

软件包 下载
NeuroLinker

NeuroLinker 是 MyAnimeList 的抓取库。

VaraniumSharp.Initiator

基于 VaraniumSharp 的 Ring 2 库。此库利用和扩展 VaraniumSharp 作为其他(Ring 3)项目的基库。

VaraniumSharp.WinUI

一个包含 WinUI 辅助类和组件的 VarniumSharp 库。

VaraniumSharp.Discord

VaraniumSharp.Discord 是一个 VaraniumSharp 插件,它包装了 Discord.Net 以简化机器人设置。

VaraniumSharp.Shenfield

基于 VaraniumSharp.Initiator 构建的 WPF 端口。

GitHub 仓库

此软件包未由任何流行的 GitHub 仓库使用。

版本 下载 最后更新
5.3.0 161 2/12/2024
5.2.0 312 12/12/2023
5.1.0 185 8/11/2023
5.0.2 371 11/29/2022
5.0.1 930 8/16/2022
4.2.1 1,752 12/17/2021
4.2.0 677 11/1/2021
4.1.0 344 9/29/2021
4.0.1 379 9/27/2021
4.0.0 399 9/27/2021
3.13.2 405 9/21/2021
3.12.0 464 9/10/2021
3.10.0 707 8/21/2021
3.9.3 626 8/21/2021
3.8.0 391 7/25/2021
3.7.0 1,204 6/23/2020
3.6.1 1,175 2/26/2020
3.6.0 514 2/26/2020
3.5.0 2,567 11/22/2019
3.4.6 612 10/10/2019
3.4.5 599 10/10/2019
3.4.4 580 9/21/2019
3.4.0 568 9/21/2019
3.3.0 793 12/3/2018
3.1.7 1,708 9/21/2018
3.1.5 2,673 7/31/2018
3.1.4 878 7/20/2018
3.1.2 3,028 7/14/2018
3.1.1 1,007 6/4/2018
3.1.0 983 6/4/2018
3.0.1 1,435 2/16/2018
1.20.0 1,637 9/27/2017
1.18.0 939 9/21/2017
1.17.1 898 9/19/2017
1.17.0 921 9/19/2017
1.16.0 964 9/2/2017
1.15.1 991 7/17/2017
1.15.0 944 7/13/2017
1.14.0 5,250 3/21/2017
1.13.0 2,428 3/11/2017
1.9.0 1,015 1/26/2017
1.8.1 1,058 12/18/2016
1.8.0 1,058 12/8/2016
1.7.0 3,055 11/19/2016
1.6.2 1,203 11/16/2016
1.2.1 1,141 11/5/2016
1.2.0 1,728 10/3/2016
1.1.0 975 9/29/2016
1.0.0 975 9/29/2016