Implements a high-performance raw byte[] protocol path for SignalR DataSource GetAll/LoadDataSource, using a new IsRawBytesData flag in SignalParams. When enabled, the server pre-serializes response data and sends it as a byte array, which the protocol passes through without further (de)serialization. The client receives the raw bytes and deserializes as needed, avoiding double serialization/deserialization and improving performance for large payloads. Adds SerializerType selection to DataSource, propagates SignalParams through hub and protocol layers, and updates client/server/test code to support the new path. Also includes diagnostics flags for binary serialization debugging and fixes for multi-segment buffer handling. |
||
|---|---|---|
| .. | ||
| LoginServices | ||
| SignalRs | ||
| AyCode.Services.Server.Tests.csproj | ||
| InvokeMethodExtensionTests.cs | ||
| README.md | ||
| TestLogger.cs | ||
README.md
AyCode.Services.Server.Tests
@project { type = "test" }
Comprehensive server-side tests for SignalR communication, DataSource operations, login services, and reflection-based method invocation.
Folder Structure
| Folder | Purpose |
|---|---|
SignalRs/ |
Full SignalR client→hub→service test infrastructure |
LoginServices/ |
Login service test base classes |
Key Files (Root)
TestLogger.cs— Re-exports TestLogger from AyCode.Core.Tests.InvokeMethodExtensionTests.cs— Tests MethodInfo.InvokeMethod: sync, async Task unwrapping, Task.FromResult (production bug fix), non-generic Task, complex objects.