Fusonic.Extensions.Common
9.4.0
Prefix Reserved
See the version list below for details.
dotnet add package Fusonic.Extensions.Common --version 9.4.0
NuGet\Install-Package Fusonic.Extensions.Common -Version 9.4.0
<PackageReference Include="Fusonic.Extensions.Common" Version="9.4.0" />
paket add Fusonic.Extensions.Common --version 9.4.0
#r "nuget: Fusonic.Extensions.Common, 9.4.0"
// Install Fusonic.Extensions.Common as a Cake Addin #addin nuget:?package=Fusonic.Extensions.Common&version=9.4.0 // Install Fusonic.Extensions.Common as a Cake Tool #tool nuget:?package=Fusonic.Extensions.Common&version=9.4.0
Common
This project contains general, framework independent utilities and abstractions.
PropertyUtil
Utility to get the names and types from property expressions.
Example:
public class RandomClass
{
public bool Flag { get; set; }
public string Title { get; set; }
}
PropertyUtil.GetName<RandomClass>(c => c.Flag) //Returns "Flag"
PropertyUtil.GetType<RandomClass>(c => c.Title) //Returns typeof(string)
PropertyUtil.GetName<RandomClass>(c => c.GetType()) //Throws ArgumentException - .GetType() is no valid property expression
PathUtil
Utility for paths. Does not try to replicate System.IO.Path
, but adds some helpers that Path
doesn't.
Currently this only has methods for removing invalid chars from paths and filenames, as Path.GetInvalidFileNameChars()
returns different values based on the OS, while PathUtil
uses a fixed set. This may be for example required when generating a filename for a download.
TempFileStream
This creates a temporary file that gets automatically deleted when it is closed. Example:
await using (var fs = new TempFileStream())
{
// Write content to file
// Upload file
}
// File was deleted at this point.
TransactionScopeHandler
The TransactionScopeHandler
provides an easy way to run code within a transaction. The transaction optios are
IsolationLevel = IsolationLevel.ReadCommitted
Timeout = TransactionManager.MaximumTimeout
Example:
// Runs async method FooMethod in a transaction. An ambient transaction gets used if it exists, otherwise a new one will be created.
await transactionScopeHandler.RunInTransactionScope(FooMethod)
// Runs async method BarMethod in a new transaction.
await transactionScopeHandler.RunInTransactionScope(async () => { await BarMethod(); return 42; }, TransactionScopeOptions.RequiresNew);
// Runs LogMethod and supresses any ambient transaction.
await transactionScopeHandler.RunInTransactionScope(LogMethod, TransactionScopeOptions.Suppress);
// Shortcut for supressing the transaction
await transactionScopeHandler.SuppressTransaction(LogMethod);
Product | Versions 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. |
-
net8.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Fusonic.Extensions.Common:
Package | Downloads |
---|---|
Fusonic.Extensions.Hangfire
Provides Hangfire extensions, especially suited for CQRS development. (Out of band processing). |
|
Fusonic.Extensions.AspNetCore
Provides ASP.NET Core extensions (Middelwares, Utilities ...) |
|
Fusonic.Extensions.EntityFrameworkCore
Provides EF Core extensions (Utilities, helpers ...) |
|
Fusonic.Extensions.Mediator
Contains a simple implementation of the common mediator pattern. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
9.5.0 | 173 | 10/4/2024 |
9.4.0 | 277 | 9/23/2024 |
9.3.1 | 241 | 9/11/2024 |
9.3.0 | 149 | 9/11/2024 |
9.2.0 | 180 | 8/8/2024 |
9.2.0-rc.3 | 53 | 8/7/2024 |
9.2.0-rc.2 | 33 | 8/5/2024 |
9.2.0-rc.1 | 48 | 8/1/2024 |
9.1.0 | 95 | 7/29/2024 |
9.0.0 | 508 | 7/17/2024 |
9.0.0-preview.2 | 62 | 6/13/2024 |
9.0.0-preview.1 | 112 | 4/5/2024 |
8.1.3 | 1,233 | 3/27/2024 |
8.1.2 | 173 | 3/27/2024 |
8.1.1 | 301 | 3/1/2024 |
8.1.0 | 1,572 | 1/26/2024 |
8.0.1 | 726 | 12/18/2023 |
8.0.0 | 709 | 11/21/2023 |
8.0.0-preview1 | 557 | 10/4/2023 |
7.4.0 | 411 | 1/25/2024 |
7.3.0 | 661 | 10/11/2023 |
7.2.1-rc.1 | 93 | 8/28/2023 |
7.2.0 | 1,363 | 6/28/2023 |
7.2.0-alpha.1 | 86 | 6/27/2023 |
7.1.2 | 1,281 | 5/25/2023 |
7.1.1 | 1,661 | 4/3/2023 |
7.1.1-rc.2 | 93 | 3/30/2023 |
7.1.1-rc.1 | 87 | 3/30/2023 |
7.1.0 | 1,705 | 2/28/2023 |
7.1.0-rc.1 | 102 | 2/20/2023 |
7.0.4-rc.5 | 95 | 2/23/2023 |
7.0.4-rc.4 | 95 | 2/23/2023 |
7.0.4-rc.3 | 96 | 2/23/2023 |
7.0.4-rc.2 | 96 | 2/22/2023 |
7.0.4-rc.1 | 102 | 2/16/2023 |
7.0.3 | 1,192 | 2/16/2023 |
7.0.2 | 1,038 | 2/9/2023 |
7.0.2-rc.1 | 114 | 2/2/2023 |
7.0.1 | 1,473 | 1/26/2023 |
7.0.0 | 1,202 | 1/24/2023 |
7.0.0-preview1 | 814 | 7/18/2022 |
7.0.0-beta.9 | 114 | 1/24/2023 |
7.0.0-beta.8 | 107 | 1/23/2023 |
7.0.0-beta.7 | 104 | 1/23/2023 |
7.0.0-beta.6 | 106 | 1/23/2023 |
7.0.0-beta.5 | 112 | 1/23/2023 |
7.0.0-beta.4 | 109 | 1/19/2023 |
7.0.0-beta.3 | 103 | 1/17/2023 |
7.0.0-beta.2 | 107 | 1/11/2023 |
7.0.0-beta.1 | 92 | 11/24/2022 |
6.2.2 | 16,227 | 9/20/2022 |
6.2.2-rc.1 | 125 | 9/19/2022 |
6.2.1 | 5,276 | 5/4/2022 |
6.2.0 | 1,836 | 4/21/2022 |
6.2.0-rc.2 | 133 | 4/21/2022 |
6.2.0-rc.1 | 129 | 4/20/2022 |
6.1.1 | 2,261 | 3/1/2022 |
6.1.0 | 1,926 | 2/10/2022 |
6.1.0-rc.3 | 129 | 2/10/2022 |
6.1.0-rc.2 | 122 | 2/10/2022 |
6.1.0-rc.1 | 132 | 2/9/2022 |
6.0.3 | 2,784 | 1/18/2022 |
6.0.2 | 4,511 | 1/10/2022 |
6.0.1 | 1,259 | 12/16/2021 |
6.0.0 | 1,785 | 12/13/2021 |
6.0.0-rc.6 | 169 | 12/6/2021 |
6.0.0-rc.5 | 354 | 12/6/2021 |
6.0.0-rc.4 | 547 | 12/6/2021 |
6.0.0-rc.3 | 394 | 12/6/2021 |
6.0.0-rc.2 | 353 | 12/6/2021 |
6.0.0-rc.1 | 667 | 11/15/2021 |
5.4.0 | 2,176 | 10/13/2021 |
5.3.0 | 1,624 | 9/23/2021 |
5.3.0-rc.1 | 344 | 9/17/2021 |
5.2.0 | 4,450 | 5/20/2021 |
5.2.0-rcjh.6 | 196 | 5/19/2021 |
5.2.0-rcjh.5 | 148 | 5/19/2021 |
5.2.0-rcjh.4 | 178 | 5/19/2021 |
5.2.0-rcjh.3 | 153 | 5/19/2021 |
5.2.0-rcjh.2 | 145 | 4/12/2021 |
5.2.0-rcjh.1 | 150 | 4/12/2021 |
5.1.3 | 1,592 | 5/19/2021 |
5.1.2 | 15,572 | 3/26/2021 |
5.1.1 | 2,237 | 1/13/2021 |
5.1.0 | 3,291 | 12/16/2020 |
5.0.0 | 3,730 | 11/17/2020 |
5.0.0-rc.1 | 279 | 10/15/2020 |
3.0.0 | 20,305 | 10/8/2020 |
2.1.0 | 27,264 | 8/25/2020 |
2.0.2 | 1,881 | 8/19/2020 |
2.0.1 | 5,086 | 7/3/2020 |
2.0.0 | 1,362 | 6/17/2020 |
1.0.0 | 1,641 | 6/15/2020 |