AyCode.Core/AyCode.Models.Server
Loretta 17daf0fef2 Document AcBinary wire format, sync docs, update conventions
- Add BINARY_FORMAT.md: full AcBinary wire format spec (markers, encoding, options, protocol, interactions)
- Reference BINARY_FORMAT.md from GLOSSARY.md, Binaries/README.md, and Serializers/Binaries/README.md; add new glossary terms
- Clarify and expand config options tables to match new doc
- Add/clarify LLM maintenance rules: always sync .md files with code, auto-fix discrepancies
- Update root README.md: AyCode.Core targets .NET 9, not 10; stress doc/code sync
- Add code reuse and doc sync conventions to copilot-instructions.md and CONVENTIONS.md
- Add docs/ folder and BINARY_FORMAT.md to solution as Solution Items
- Minor clarifications and cross-links in ARCHITECTURE.md and other docs
2026-03-29 09:11:57 +02:00
..
DynamicMethods Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Logins Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
AyCode.Models.Server.csproj Add .targets file 2025-08-31 13:07:34 +02:00
README.md Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00

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 — Implements IAcLoggedInModelBase<...>. Tracks LoggedInUser, AccessToken, LoginErrorCode. Methods: AddLoggedInUser(), Logout().

DynamicMethods/

  • AcMethodInfoModel.cs — Wraps a MethodInfo + its TagAttribute + ParameterInfo[]. Generic over TAttribute : TagAttribute.
  • AcDynamicMethodCallModel.cs — Binds an object instance to its attributed methods. Static ConcurrentDictionary + FrozenDictionary cache — reflection runs once per type. Lookup by MessageTag (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