--- source_files: - Common/DTS.CommonCore/Interface/_GenericModule/IGenericModuleView.cs - Common/DTS.CommonCore/Interface/_GenericModule/IGenericModuleViewModel.cs generated_at: "2026-04-16T12:17:41.765515+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "857aa9f92afca967" --- # Documentation: DTS.Common.Interface (Generic Module) ## 1. Purpose This module defines the core abstraction layer for "Generic Modules" within the system, adhering to a View/ViewModel separation pattern. It provides two marker interfaces, `IGenericModuleView` and `IGenericModuleViewModel`, which establish a standard contract for module implementations. These interfaces ensure that generic modules derive from the application's foundational base types (`IBaseView` and `IBaseViewModel`), enabling polymorphic handling and consistent architecture across the codebase. ## 2. Public Interface ### `IGenericModuleView` * **Namespace:** `DTS.Common.Interface` * **Inheritance:** `IBaseView` * **Signature:** ```csharp public interface IGenericModuleView : IBaseView { } ``` * **Description:** A marker interface intended for View components within a Generic Module. It inherits from `IBaseView` but defines no additional members. ### `IGenericModuleViewModel` * **Namespace:** `DTS.Common.Interface` * **Inheritance:** `IBaseViewModel` * **Signature:** ```csharp public interface IGenericModuleViewModel : IBaseViewModel { } ``` * **Description:** A marker interface intended for ViewModel components within a Generic Module. It inherits from `IBaseViewModel` but defines no additional members. ## 3. Invariants * **Type Hierarchy:** Any class implementing `IGenericModuleView` must also implement `IBaseView` (defined in `DTS.Common.Base`). * **Type Hierarchy:** Any class implementing `IGenericModuleViewModel` must also implement `IBaseViewModel` (defined in `DTS.Common.Base`). * **Behavioral Contract:** Since neither interface defines methods or properties, the behavioral contract is entirely defined by the parent interfaces (`IBaseView` and `IBaseViewModel`). ## 4. Dependencies * **Internal Dependencies:** * `DTS.Common.Base`: Both source files import this namespace to access `IBaseView` and `IBaseViewModel`. * **Consumers:** Unknown from the source alone. These interfaces are likely consumed by classes implementing specific module views and viewmodels, or by navigation/dependency injection infrastructure that resolves generic module types. ## 5. Gotchas * **Marker Interfaces:** Both `IGenericModuleView` and `IGenericModuleViewModel` are empty "marker" interfaces. They do not expose any specific functionality (properties, methods, or events) themselves. Developers must inspect `IBaseView` and `IBaseViewModel` to understand the actual API surface area required for implementation. * **Usage Ambiguity:** The source does not specify what constitutes a "Generic Module" versus a standard module. The distinction is likely defined by convention or usage in other parts of the codebase (e.g., specific registration logic or base classes).