--- 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.