VaraniumSharp 5.3.0
dotnet add package VaraniumSharp --version 5.3.0
NuGet\Install-Package VaraniumSharp -Version 5.3.0
<PackageReference Include="VaraniumSharp" Version="5.3.0" />
paket add VaraniumSharp --version 5.3.0
#r "nuget: VaraniumSharp, 5.3.0"
// 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
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.DryIoC 库,用于封装 DryIoc.dll IoC 容器,以便使用基于属性的 DI。
- VaraniumSharp.ServiceCollection 库,用于封装 Microsoft.Extensions.DependencyInjection.Abstraction。这对于容易实现 ASP.net 项目的 DI 非常有用。
前端
- VaraniumSharp.WinUI 库,它包含用于 WinUI 3 的辅助程序和组件。
包装器
- VaraniumSharp.CompoundDocumentFormatStorage 库,用于封装 OpenMcdf。它实现了
IPackageManager
接口。 - VaraniumSharp.Discord 库,用于封装 Discord.Net,以便轻松设置 Discord 机器人。
- VaraniumSharp.Oidc 库,用于封装 IdentityModel.OidcClient,以便轻松实现 OIDC。
已弃用
- VaraniumSharp.Initiator 库,用于封装 DryIoc、OIDC、ApplicationInsights 和 Serilog。已被单独的包替代。
- VaraniumSharp.Monolith 库,提供在 VaraniumSharp.Initiator 之上的 WebService 功能。
- VarniumSharp.Shenfield 库,用于封装 WPF 辅助程序。
文档
有关库的详细概述,请参阅我们的 文档
注意
随着 VaraniumSharp 2.0.0 的发布,我们将转向 .NetStandard2.0,因为这支持所有 .Net 4.6.1+ 框架库,并允许利用 DotNet Core2.0+ 的功能。如果需要旧版本,请提交问题并请求支持,我们愿意适当进行多目标平台支持(注意,由于缺少库,无法支持 DotNet Core 1.x)
图标
产品 | 版本 兼容和附加的计算目标框架版本。 |
---|---|
.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 已计算。 |
-
.NETStandard 2.0
- Microsoft.Extensions.Logging (≥5.0.0)
- System.Configuration.ConfigurationManager (≥5.0.0)
- System.Runtime.Caching (≥5.0.0)
-
.NETStandard 2.1
- Microsoft.Extensions.Logging (≥5.0.0)
- System.Configuration.ConfigurationManager (≥5.0.0)
- System.Runtime.Caching (≥5.0.0)
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 |