InfiniteRefactor.Infrastructure
1.0.2
dotnet add package InfiniteRefactor.Infrastructure --version 1.0.2
NuGet\Install-Package InfiniteRefactor.Infrastructure -Version 1.0.2
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="InfiniteRefactor.Infrastructure" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="InfiniteRefactor.Infrastructure" Version="1.0.2" />
<PackageReference Include="InfiniteRefactor.Infrastructure" />
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 InfiniteRefactor.Infrastructure --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: InfiniteRefactor.Infrastructure, 1.0.2"
#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 InfiniteRefactor.Infrastructure@1.0.2
#: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=InfiniteRefactor.Infrastructure&version=1.0.2
#tool nuget:?package=InfiniteRefactor.Infrastructure&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
InfiniteRefactor.Infrastructure
A .NET 8 infrastructure library providing a comprehensive set of utilities, extensions, and a lightweight DataService framework for building scalable backend services.
Features
- DataService Framework — A protocol-agnostic RPC framework with bindings for HTTP, TCP, Named Pipes, RabbitMQ, WebSocket, and ASP.NET Core middleware.
- Extensions — Fluent extensions for
IEnumerable,Task,Delegate,Reflection, and more. - Net — HTTP client utilities with cookie management, proxy support, and custom handlers.
- Security — RSA/PEM cryptography and BouncyCastle-backed cipher utilities.
- Serializer — Unified serializer interface with implementations for JSON (Newtonsoft, System.Text.Json), XML, YAML, Binary, SOAP, and Marshal.
- Session — Pluggable session management for ASP.NET and standalone applications.
- Reflection — Emit-based fast activator, method helpers, and dynamic wrapper utilities.
- Linq — LinqKit integration with dynamic LINQ and predicate builder.
- Utilities — Snowflake ID generator, event system, gzip compression, and argument parser.
- Config — Unified configuration loading from JSON, environment variables, YAML, and command-line args.
Installation
dotnet add package InfiniteRefactor.Infrastructure
NuGet package coming soon. For now, reference the project directly.
Quick Start
DataService (HTTP)
// Define a service
[DataService]
public class MyService
{
[DataServiceMethod]
public string Hello(string name) => $"Hello, {name}!";
}
// Host it
var host = new DataServiceHost();
host.AddService<MyService>();
// Create and start the server
var server = DataServiceServer.Create("http://0.0.0.0:5000/", host: host);
server.Start();
HTTP Client
var http = new Http();
var response = await http.GetAsync("https://api.example.com/data");
var content = await response.Content.ReadAsStringAsync();
Snowflake ID
var worker = new IdWorker(workerId: 1, datacenterId: 1);
long id = worker.NextId();
Requirements
- .NET 8.0+
Third-Party Credits
- Twitter Snowflake — Distributed ID generation algorithm by Twitter, Inc. Licensed under Apache 2.0.
- LinqKit — LINQ expression utilities by Joseph Albahari and Tomas Petricek. Licensed under MIT.
- Microsoft Dynamic LINQ — Dynamic query support from Microsoft. Licensed under Ms-PL.
- ObjectDumper — Object graph dump utility from Microsoft LINQ samples. Licensed under Ms-PL.
License
Mozilla Public License 2.0
| 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. 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.
-
net8.0
- Castle.Core (>= 5.2.1)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.7)
- Microsoft.Extensions.Caching.Memory (>= 9.0.7)
- Microsoft.Extensions.Configuration.CommandLine (>= 9.0.6)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 9.0.6)
- Microsoft.Extensions.Configuration.FileExtensions (>= 9.0.6)
- Microsoft.Extensions.Configuration.Json (>= 9.0.6)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.6)
- Newtonsoft.Json (>= 13.0.3)
- NLog (>= 6.0.1)
- RabbitMQ.Client (>= 6.8.1)
- System.Net.Http.Json (>= 9.0.6)
- System.Reflection.Emit (>= 4.7.0)
- System.Runtime.Caching (>= 9.0.6)
- YamlDotNet (>= 16.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.