csharpdeeb25a2 | 1 | #nullable enable |
| 2 | |
| 3 | namespace CascadeIDE.Contracts; |
| 4 | |
| 5 | /// <summary> |
| 6 | /// Маркер проекции presentation-слоя: статическое преобразование снимка/DTO в строки и флаги для биндинга VM. |
| 7 | /// </summary> |
| 8 | /// <remarks> |
| 9 | /// Отличается от <see cref="ApplicationOrchestratorAttribute"/> (координация сценария, async, UI/MCP/DataBus) |
| 10 | /// и от CCU в <c>Cockpit/ComputingUnits</c> (<see cref="ComputingUnitAttribute"/> + <see cref="ICockpitComputeUnit"/>). |
| 11 | /// |
| 12 | /// Типичное место — <c>Features/*/Application</c>, суффикс <c>*Projection</c> или <c>*PresentationProjection</c>. |
| 13 | /// Без I/O, без публикации в DataBus, без хранения состояния процесса. |
| 14 | /// |
| 15 | /// Поиск: <c>[PresentationProjection]</c>. |
| 16 | /// </remarks> |
| 17 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, |
| 18 | Inherited = false, |
| 19 | AllowMultiple = false)] |
| 20 | public sealed class PresentationProjectionAttribute : Attribute |
| 21 | { |
| 22 | public PresentationProjectionAttribute() |
| 23 | { |
| 24 | } |
| 25 | |
| 26 | public PresentationProjectionAttribute(string note) => Note = note; |
| 27 | |
| 28 | public string? Note { get; } |
| 29 | } |
| 30 | |
View only · write via MCP/CIDE