SuperSocket.ProtoBase 2.0.2-beta.1
Release Note: SuperSocket 2.0.2-beta.1
Overview
SuperSocket 2.0.2-beta.1 is a beta release that enhances the flexibility of pipeline filters by removing the constraint requiring a default constructor. This change significantly improves dependency injection support for pipeline filters across the framework.
Key Improvements
Enhanced Dependency Injection Support for Pipeline Filters
- Removed the constraint requiring pipeline filters to have a parameterless constructor (
new()constraint) - This change enables pipeline filters to receive dependencies through constructor injection
- Modified all relevant method signatures across the framework to support this new flexibility
Affected Components
The new() constraint was removed from the following interfaces and methods:
In
ISuperSocketHostBuilder<TReceivePackage>interface:UsePipelineFilter<TPipelineFilter>()method
In
HostBuilderExtensionsclass:AsSuperSocketHostBuilder<TReceivePackage, TPipelineFilter>()method
In
MultipleServerHostBuilderclass:AddServer<TReceivePackage, TPipelineFilter>()methodAddServer<TSuperSocketService, TReceivePackage, TPipelineFilter>()method
In
SuperSocketHostBuilderclass and static methods:UsePipelineFilter<TPipelineFilter>()methodCreate<TReceivePackage, TPipelineFilter>()methods
Compatibility
This change is backward compatible with existing code. Pipeline filters with default constructors will continue to work as before, but now you can also create pipeline filters that require dependencies to be injected.
Example Usage
With this change, you can now create pipeline filters that require dependencies:
public class MyPipelineFilter : IPipelineFilter<TextPackageInfo>
{
private readonly ILogger<MyPipelineFilter> _logger;
private readonly IConfiguration _configuration;
// Constructor with dependencies - now supported!
public MyPipelineFilter(ILogger<MyPipelineFilter> logger, IConfiguration configuration)
{
_logger = logger;
_configuration = configuration;
}
// Implementation details...
}
// Register and use the filter
hostBuilder.AsSuperSocketHostBuilder<TextPackageInfo, MyPipelineFilter>();
Release Status
This is a beta release intended for testing. Please report any issues you encounter on the GitHub repository.
Contributors
- Kerry Jiang
Links
- GitHub Repository: https://github.com/kerryjiang/SuperSocket
- Documentation: https://docs.supersocket.net/
- NuGet Packages: https://www.nuget.org/packages?q=SuperSocket
Showing the top 20 packages that depend on SuperSocket.ProtoBase.
| Packages | Downloads |
|---|---|
|
SuperSocket.Primitives
SuperSocket core primitive interfaces and classes that define the fundamental abstractions for network communication, session management, and message handling.
|
3 |
|
SuperSocket.Client
SuperSocket client library implementing high-performance socket client functionality with protocol extensibility, pipeline processing, and comprehensive connection management.
|
3 |
|
SuperSocket.Primitives
SuperSocket primitive interfaces and classes.
|
3 |
|
SuperSocket.Server.Abstractions
SuperSocket library for server abstractions. It includes many interfaces and base implementation of SuperSocket server components. Users can extend server side base on this project.
|
3 |
|
SuperSocket.ClientEngine
It's a .NET socket tool which can simplify the socket client developing
|
2 |
|
SuperSocket.Server
SuperSocket server hosting library.
|
2 |
|
SuperSocket.Server
SuperSocket server hosting library providing the core server implementation with session management, connection handling, and integration with the .NET dependency injection system and configuration framework.
|
2 |
|
SuperSocket.Client
SuperSocket client library
|
2 |
|
SuperSocket.Connection
SuperSocket library to abstract underlying communications as connection with pipeline.
|
2 |
|
SuperSocket.Connection
SuperSocket connection abstraction library that provides high-performance networking through System.IO.Pipelines, ensuring efficient data transfer with minimal allocations and buffer management.
|
2 |
|
SuperSocket.Primitives
SuperSocket primitive interfaces and classes.
|
2 |
.NET 6.0
.NET 7.0
.NET 8.0
.NET 8.0
.NET 8.0
.NET 8.0
.NET 8.0
.NET 9.0
.NET 9.0
.NET 9.0
.NET 9.0
.NET 9.0
| Version | Downloads | Last updated |
|---|---|---|
| 2.0.2 | 1 | 2025/8/25 |
| 2.0.2-beta.1 | 1 | 2025/8/28 |
| 2.0.1 | 1 | 2025/8/25 |
| 2.0.0 | 1 | 2025/8/25 |
| 2.0.0-beta.31 | 1 | 2025/8/28 |
| 2.0.0-beta.30 | 1 | 2025/8/28 |
| 2.0.0-beta.28 | 1 | 2025/8/28 |
| 2.0.0-beta.27 | 1 | 2025/8/28 |
| 2.0.0-beta.26 | 1 | 2025/8/28 |
| 2.0.0-beta.25 | 1 | 2025/8/28 |
| 2.0.0-beta.24 | 1 | 2025/8/28 |
| 2.0.0-beta.23 | 1 | 2025/8/28 |
| 2.0.0-beta.22 | 1 | 2025/8/28 |
| 2.0.0-beta.21 | 1 | 2025/8/28 |
| 2.0.0-beta.20.448 | 1 | 2025/8/28 |
| 2.0.0-beta.18 | 1 | 2025/8/28 |
| 2.0.0-beta.17 | 1 | 2025/8/28 |
| 2.0.0-beta.16 | 1 | 2025/8/28 |
| 2.0.0-beta.15 | 1 | 2025/8/28 |
| 2.0.0-beta.14 | 1 | 2025/8/28 |
| 2.0.0-beta.13 | 1 | 2025/8/28 |
| 2.0.0-beta.12 | 1 | 2025/8/28 |
| 2.0.0-beta.11 | 1 | 2025/8/28 |
| 2.0.0-beta.10 | 1 | 2025/8/28 |
| 2.0.0-beta.9 | 1 | 2025/8/28 |
| 2.0.0-beta.8 | 1 | 2025/8/28 |
| 1.7.0.17 | 2 | 2025/8/21 |
| 1.7.0.16 | 1 | 2025/8/28 |
| 1.7.0.15 | 1 | 2025/8/28 |
| 1.7.0.14 | 1 | 2025/8/28 |
| 1.7.0.13 | 1 | 2025/8/28 |
| 1.7.0.12 | 1 | 2025/8/28 |
| 1.7.0.11 | 1 | 2025/8/28 |
| 1.7.0.10 | 1 | 2025/8/28 |
| 1.7.0.9 | 1 | 2025/8/28 |
| 1.7.0.8 | 1 | 2025/8/28 |
| 1.7.0.7 | 1 | 2025/8/28 |
| 1.7.0.5 | 1 | 2025/8/28 |
| 1.7.0-beta7 | 1 | 2025/8/28 |
| 1.7.0-beta6 | 1 | 2025/8/28 |