Files
DP44/enriched-partialglm/Common/DTS.CommonCore/Interface/ViewData.md

40 lines
2.7 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.CommonCore/Interface/ViewData/IViewDataView.cs
- Common/DTS.CommonCore/Interface/ViewData/IViewDataViewModel.cs
generated_at: "2026-04-16T12:11:08.439419+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "820bab209e8d1b8f"
---
# Documentation: ViewData Interfaces
## 1. Purpose
This module defines two marker interfaces, `IViewDataView` and `IViewDataViewModel`, within the `DTS.Common.Interface` namespace. It exists to establish a specific contract for "ViewData" components within the system, deriving from base architectural components (`IBaseView` and `IBaseViewModel`). This allows for type discrimination of specific views and view models without enforcing additional members beyond those defined in the base interfaces.
## 2. Public Interface
### `IViewDataView`
* **Signature:** `public interface IViewDataView : IBaseView`
* **Namespace:** `DTS.Common.Interface`
* **Description:** An empty interface that extends `IBaseView`. It acts as a marker for view components associated with ViewData logic. It defines no additional methods or properties of its own.
### `IViewDataViewModel`
* **Signature:** `public interface IViewDataViewModel : IBaseViewModel`
* **Namespace:** `DTS.Common.Interface`
* **Description:** An empty interface that extends `IBaseViewModel`. It acts as a marker for view model components associated with ViewData logic. It defines no additional methods or properties of its own.
## 3. Invariants
* **Inheritance Hierarchy:** Any class implementing `IViewDataView` must also implement `IBaseView` (defined in `DTS.Common.Base`).
* **Inheritance Hierarchy:** Any class implementing `IViewDataViewModel` must also implement `IBaseViewModel` (defined in `DTS.Common.Base`).
* **Member Contract:** Since both interfaces are empty (contain no members), the behavioral contract is entirely defined by the base interfaces they inherit from.
## 4. Dependencies
* **Internal Dependencies:**
* `DTS.Common.Base`: Both source files import this namespace to access `IBaseView` and `IBaseViewModel`.
* **Consumers:** Unknown from source alone. It is expected that concrete View and ViewModel classes within the codebase will implement these interfaces to participate in ViewData-specific workflows.
## 5. Gotchas
* **Marker Interfaces:** Both `IViewDataView` and `IViewDataViewModel` are marker interfaces; they define no members. Developers implementing these interfaces should refer to `IBaseView` and `IBaseViewModel` to satisfy the actual structural requirements.
* **Missing Context:** The specific functionality that distinguishes a "ViewData" view/viewmodel from a standard one is not defined in these files. The distinction is purely nominal/type-based at this level.