40 lines
2.7 KiB
Markdown
40 lines
2.7 KiB
Markdown
|
|
---
|
||
|
|
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.
|