48 lines
3.0 KiB
Markdown
48 lines
3.0 KiB
Markdown
|
|
---
|
||
|
|
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).
|