Expanded and clarified solution/project documentation: - Added all top-level docs and docs/ folder as solution items in .sln files - Inserted maintenance notices in all project and subfolder READMEs: require .md sync with code - Main READMEs now include project tables with TFM, purpose, and README links - ARCHITECTURE.md now details dependency graph and TFM rationale - CONVENTIONS.md and copilot-instructions.md require code reuse, no redundancy - Glossary and conventions updated to require terminology/rule updates with code changes - Emphasized DLL-only AyCode.Core refs and nopCommerce .NET 9.0 requirement - Clarified domain terms and intentional typos - No code logic changes; documentation and guidance only |
||
|---|---|---|
| .. | ||
| AcExpressionDeserializer.cs | ||
| AcExpressionHelper.cs | ||
| AcExpressionNode.cs | ||
| AcExpressionSerializerVisitor.cs | ||
| README.md | ||
README.md
ExpressionHelpers
LINQ expression tree serialization and deserialization to JSON, enabling expression transport over SignalR or HTTP. Converts Expression trees to a recursive AcExpressionNode DTO and back, supporting binary, unary, lambda, member access, method calls, conditionals, new/member-init, and array expressions.
Key Files
AcExpressionNode.cs-- Universal DTO representing any expression node. IncludesParameterNodeandMemberBindingNodesupporting types. Recursively models the full expression tree and is JSON-serializable.AcExpressionHelper.cs-- Static facade for serializing/deserializing expressions andIQueryablequery trees. ProvidesExpressionToJson,ExpressionFromJson,QueryToJson, andApplyQueryFromJsonmethods.AcExpressionSerializerVisitor.cs--ExpressionVisitorsubclass that walks an expression tree and builds theAcExpressionNodegraph using a stack-based approach. Handles closure variable evaluation and constant serialization.AcExpressionDeserializer.cs-- ReconstructsExpressiontrees fromAcExpressionNodeDTOs. Resolves types, parameters, methods, and member bindings. Handles nullable type mismatches in binary expressions.