Forge
csharpdeeb25a2
1#nullable enable
2
3namespace 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)]
20public 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