Added comprehensive docs for SignalR tag-based dispatch (docs/SIGNALR_ARCHITECTURE.md), including message flow, tag system, dynamic method registry, and tech debt (JSON-in-Binary). Updated all related READMEs, glossaries, and conventions to reference this architecture and clarify grid infrastructure (MgGridBase, FruitBankGridBase) and external dependency locations (AyCode.Core, AyCode.Blazor, Mango.Nop Libraries, FruitBank Plugin). Synchronized solution items and copilot-instructions. Improves discoverability, enforces conventions, and clarifies tech debt for all developers. |
||
|---|---|---|
| .. | ||
| DynamicMethods | ||
| Logins | ||
| AyCode.Models.Server.csproj | ||
| README.md | ||
README.md
AyCode.Models.Server
Server-side models: authentication state and dynamic method dispatch for SignalR message routing.
Folder Structure
| Folder | Purpose |
|---|---|
Logins/ |
Server-side logged-in user model |
DynamicMethods/ |
Reflection-based method registry for SignalR message tag routing |
Key Files
Logins/
AcLoggedInModelServer.cs— ImplementsIAcLoggedInModelBase<...>. TracksLoggedInUser,AccessToken,LoginErrorCode. Methods:AddLoggedInUser(),Logout().
DynamicMethods/
AcMethodInfoModel.cs— Wraps aMethodInfo+ itsTagAttribute+ParameterInfo[]. Generic overTAttribute : TagAttribute.AcDynamicMethodCallModel.cs— Binds an object instance to its attributed methods. StaticConcurrentDictionary+FrozenDictionarycache — reflection runs once per type. Lookup byMessageTag(int).AcDynamicMethodRegistry.cs— Per-request registry for dynamic method dispatch.Register()stores instances,GetMethodByMessageTag()resolves method + instance with lazy search and static cache. Optimized for small instance counts (array-backed, no List).
Dependencies
| Dependency | Purpose |
|---|---|
AyCode.Core |
Error codes |
AyCode.Core.Server |
Server-side core |
AyCode.Entities |
Entity base classes |
AyCode.Entities.Server |
Server entities |
AyCode.Interfaces |
Interface contracts |
AyCode.Interfaces.Server |
IAcLoggedInModelBase |
AyCode.Models |
Shared models |
AyCode.Services |
TagAttribute for SignalR method tagging |