init
This commit is contained in:
57
docs/ai/Common/DTS.Common/Events/ISO.md
Normal file
57
docs/ai/Common/DTS.Common/Events/ISO.md
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.Common/Events/ISO/ExtraPropertiesChangedEvent.cs
|
||||
generated_at: "2026-04-17T16:43:15.351224+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "f41653a888428aaa"
|
||||
---
|
||||
|
||||
# Documentation: ExtraPropertiesChangedEvent.cs
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module provides a Prism-based event mechanism for broadcasting changes to "extra properties" within an ISO-related domain. It enables loose coupling between producers and consumers of property change notifications by leveraging the `PubSubEvent` pattern from Prism's event aggregation framework. The event carries metadata about which properties changed, the object that produced the change, and the intended consumer.
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `ExtraPropertiesChangedEvent`
|
||||
A class that extends `PubSubEvent<ExtraPropertiesChangedEventArgs>`. This is the event token used to subscribe to or publish extra property change notifications via a Prism `IEventAggregator`.
|
||||
|
||||
**Signature:**
|
||||
```csharp
|
||||
public class ExtraPropertiesChangedEvent : PubSubEvent<ExtraPropertiesChangedEventArgs> { }
|
||||
```
|
||||
|
||||
### `ExtraPropertiesChangedEventArgs`
|
||||
A class encapsulating the data passed when the event is raised.
|
||||
|
||||
**Constructor:**
|
||||
```csharp
|
||||
public ExtraPropertiesChangedEventArgs(IList<IExtraProperty> extraProperties, object producer, object consumer)
|
||||
```
|
||||
|
||||
**Properties:**
|
||||
|
||||
| Property | Type | Access | Description |
|
||||
|----------|------|--------|-------------|
|
||||
| `ExtraProperties` | `IList<IExtraProperty>` | `get; private set;` | The collection of extra properties that changed. |
|
||||
| `Producer` | `object` | `get; private set;` | The object that produced the property changes. |
|
||||
| `Consumer` | `object` | `get; private set;` | The intended consumer of the property changes. |
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- **Immutability after construction**: All properties (`ExtraProperties`, `Producer`, `Consumer`) are set exclusively via the constructor and cannot be modified afterward due to `private set` accessors.
|
||||
- **No null validation in constructor**: The constructor does not perform null checks on any parameters; callers may pass `null` values which will be assigned directly.
|
||||
- **Reference semantics**: The `ExtraProperties` list is stored by reference, not copied; modifications to the original list after construction could affect the event args.
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
**This module depends on:**
|
||||
- `System` - Core .NET framework
|
||||
- `System.Collections.Generic` - For `IList<T>` interface
|
||||
- `DTS.Common.Interface.ISO.ExtraProperties` - Provides `IExtraProperty` interface
|
||||
- `Prism.Events` - Provides `PubSubEvent<T>` base class (Prism library)
|
||||
|
||||
**What depends on this module:**
|
||||
- Cannot be determined from this source file alone. Consumers would be any module that publishes or subscribes to `ExtraPropertiesChangedEvent`
|
||||
Reference in New Issue
Block a user