42 lines
2.1 KiB
Markdown
42 lines
2.1 KiB
Markdown
---
|
|
source_files:
|
|
- Common/DTS.Common/Interface/TestModule/ITestModuleView.cs
|
|
- Common/DTS.Common/Interface/TestModule/ITestModuleViewModel.cs
|
|
generated_at: "2026-04-17T16:07:10.454200+00:00"
|
|
model: "zai-org/GLM-5-FP8"
|
|
schema_version: 1
|
|
sha256: "1757ca37501c0a0c"
|
|
---
|
|
|
|
# TestModule
|
|
|
|
### Purpose
|
|
This module defines the contract for a Test Module component within the DTS application, following a View-ViewModel pattern. It provides interfaces for a testing or assembly inspection feature, allowing the ViewModel to expose a list of assemblies that the View can consume. This appears to be part of a plugin or module testing infrastructure.
|
|
|
|
### Public Interface
|
|
|
|
**ITestModuleView**
|
|
- Signature: `public interface ITestModuleView : IBaseView { }`
|
|
- Description: Marker interface for the Test Module View. Inherits from `IBaseView` but defines no additional members.
|
|
|
|
**ITestModuleViewModel**
|
|
- Signature: `public interface ITestModuleViewModel : IBaseViewModel`
|
|
- Description: ViewModel interface for the Test Module. Inherits from `IBaseViewModel` and exposes assembly data.
|
|
- Property: `List<Assembly> AssemblyList { get; set; }` - Gets or sets a list of .NET assemblies, presumably for inspection, testing, or module loading purposes.
|
|
|
|
### Invariants
|
|
- `ITestModuleView` must always be assignable to `IBaseView`.
|
|
- `ITestModuleViewModel` must always be assignable to `IBaseViewModel`.
|
|
- The `AssemblyList` property may be null or empty; null safety is not enforced at the interface level.
|
|
|
|
### Dependencies
|
|
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel` base interfaces)
|
|
- **Depends on**: `System.Collections.Generic` (for `List<T>`)
|
|
- **Depends on**: `System.Reflection` (for `Assembly` type)
|
|
- **Depended on by**: Cannot be determined from source alone; likely consumed by concrete View/ViewModel implementations and a DI container or navigation service.
|
|
|
|
### Gotchas
|
|
- The `AssemblyList` uses `set` accessor, meaning the entire list can be replaced. Consumers should be aware that the reference can change, not just the contents.
|
|
- Neither interface defines any methods for loading or validating assemblies—this logic is left to implementations.
|
|
|
|
--- |