63 lines
2.6 KiB
Markdown
63 lines
2.6 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.CommonCore/Events/ISO/ExtraPropertiesChangedEvent.cs
|
||
|
|
generated_at: "2026-04-17T16:39:23.058616+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "c9e635756f4d2d11"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: ExtraPropertiesChangedEvent.cs
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines a Prism-based event mechanism for broadcasting changes to "extra properties" within the ISO-related subsystem. It enables decoupled pub/sub communication between components, allowing a producer to notify consumers when a collection of `IExtraProperty` objects has changed. The event follows the Prism CompositePresentationEvent pattern for loosely-coupled messaging.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### `ExtraPropertiesChangedEvent`
|
||
|
|
A class that inherits from `CompositePresentationEvent<ExtraPropertiesChangedEventArgs>`. It serves as the event definition used with Prism's `IEventAggregator` for publishing and subscribing to extra property change notifications.
|
||
|
|
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
public class ExtraPropertiesChangedEvent : CompositePresentationEvent<ExtraPropertiesChangedEventArgs> { }
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### `ExtraPropertiesChangedEventArgs`
|
||
|
|
A payload class carrying information about the property change event.
|
||
|
|
|
||
|
|
**Constructor:**
|
||
|
|
```csharp
|
||
|
|
public ExtraPropertiesChangedEventArgs(IList<IExtraProperty> extraProperties, object producer, object consumer)
|
||
|
|
```
|
||
|
|
|
||
|
|
**Properties:**
|
||
|
|
|
||
|
|
| Property | Type | Access | Description |
|
||
|
|
|----------|------|--------|-------------|
|
||
|
|
| `ExtraProperties` | `IList<IExtraProperty>` | Public get, private set | The collection of extra properties that changed |
|
||
|
|
| `Producer` | `object` | Public get, private set | The object that produced/owns the extra properties |
|
||
|
|
| `Consumer` | `object` | Public get, private set | The intended consumer of the extra properties |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- **Immutability**: All properties on `ExtraPropertiesChangedEventArgs` are read-only after construction (private setters).
|
||
|
|
- **Required parameters**: The constructor requires all three parameters (`extraProperties`, `producer`, `consumer`) to be provided—no parameterless constructor exists.
|
||
|
|
- **No null validation**: The constructor does not perform null checks on any parameters; null values will be stored as-is.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
### This module depends on:
|
||
|
|
- `DTS.Common.Interface.ISO.ExtraProperties` — Provides the `IExtraProperty` interface used in the `ExtraProperties` collection
|
||
|
|
- `Microsoft.Practices.Prism.Events` — Provides `CompositePresentationEvent<T>` base class for the event pattern
|
||
|
|
|
||
|
|
### What depends on this module:
|
||
|
|
- **Unknown from source alone** — Consumers would subscribe to or publish this event via Prism's `IEventAggregator`, but
|