Files

55 lines
2.9 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- DataPRO/Modules/TestSetups/CachedItemsList/CachedItemsListModule.cs
generated_at: "2026-04-17T16:16:03.436010+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a74bedf4b2a5cfaf"
---
# CachedItemsList
### Purpose
This module serves as the Prism module initializer for the CachedItemsList feature, responsible for registering the CachedItemsList view and view model with the Unity dependency injection container. It provides assembly metadata used by the application shell to display and categorize the module within the "Prepare" assembly group.
### Public Interface
**CachedItemsListModule**
- `CachedItemsListModule(IUnityContainer unityContainer)` - Constructor accepting the injected Unity container.
- `void Initialize()` - Registers `ICachedItemsListView``CachedItemsListView` and `ICachedItemsListViewModel``CachedItemsListViewModel` with Unity.
- `void OnInitialized(IContainerProvider containerProvider)` - Empty implementation.
- `void RegisterTypes(IContainerRegistry containerRegistry)` - Delegates to `Initialize()`.
**CachedItemsListModuleNameAttribute** (extends `TextAttribute`)
- `string AssemblyName { get; }` - Returns `AssemblyNames.CachedItemsList.ToString()`.
- `Type GetAttributeType()` - Returns `typeof(TextAttribute)`.
- `string GetAssemblyName()` - Returns the assembly name.
**CachedItemsListModuleImageAttribute** (extends `ImageAttribute`)
- `BitmapImage AssemblyImage { get; }` - Loads image via `AssemblyInfo.GetImage(AssemblyNames.CachedItemsList.ToString())`.
- `string AssemblyName { get; }` - Returns `AssemblyNames.CachedItemsList.ToString()`.
- `string AssemblyGroup { get; }` - Returns `eAssemblyGroups.Prepare.ToString()`.
- `eAssemblyRegion AssemblyRegion { get; }` - Returns `eAssemblyRegion.CachedItemsListRegion`.
- `BitmapImage GetAssemblyImage()`, `string GetAssemblyName()`, `string GetAssemblyGroup()`, `eAssemblyRegion GetAssemblyRegion()` - Accessor methods.
### Invariants
- The module must be constructed with a non-null `IUnityContainer` instance.
- Assembly-level attributes are applied exactly once per assembly.
- The module is exported as `IModule` and registered with Prism under the name `"CachedItemsListModule"`.
### Dependencies
**Depends on:**
- `DTS.Common` (provides `AssemblyNames`, `AssemblyInfo`, `eAssemblyGroups`, `eAssemblyRegion`, `TextAttribute`, `ImageAttribute`)
- `DTS.Common.Interface`
- `DTS.Common.Interface.TestSetups.CachedItemsList` (provides `ICachedItemsListView`, `ICachedItemsListViewModel`)
- `Prism.Ioc`, `Prism.Modularity`
- `Unity`
- `System.ComponentModel.Composition`
**Depended on by:** Not determinable from source alone.
### Gotchas
- Same discrepancy as TestSetupsListModule: the comment claims "singleton" registration but `RegisterType` is used without singleton lifetime configuration.
- The `_img` field in `CachedItemsListModuleImageAttribute` is set both in the property getter and the constructor, potentially causing redundant image loading.
---