Files
2026-04-17 14:55:32 -04:00

3.0 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/_GenericModule/IGenericModuleView.cs
Common/DTS.CommonCore/Interface/_GenericModule/IGenericModuleViewModel.cs
2026-04-16T12:17:41.765515+00:00 zai-org/GLM-5-FP8 1 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:
    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:
    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).