AyCode.Models.Server
@project {
type = "framework"
}
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 |