init
This commit is contained in:
60
enriched-qwen3-coder-next/Common/DTS.Common/obj/x86/Debug.md
Normal file
60
enriched-qwen3-coder-next/Common/DTS.Common/obj/x86/Debug.md
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.Common/obj/x86/Debug/GeneratedInternalTypeHelper.g.cs
|
||||
- Common/DTS.Common/obj/x86/Debug/GeneratedInternalTypeHelper.g.i.cs
|
||||
generated_at: "2026-04-16T02:56:51.283838+00:00"
|
||||
model: "Qwen/Qwen3-Coder-Next-FP8"
|
||||
schema_version: 1
|
||||
sha256: "708a410ec1ac79c2"
|
||||
---
|
||||
|
||||
# Debug
|
||||
|
||||
## Documentation: `GeneratedInternalTypeHelper`
|
||||
|
||||
### 1. Purpose
|
||||
This module provides a WPF-specific runtime helper class used internally during XAML parsing and object initialization. It extends `System.Windows.Markup.InternalTypeHelper` to customize how objects are instantiated, property values are read/written, and event handlers are attached—primarily to support WPF’s XAML infrastructure (e.g., for `x:Class`, `x:Name`, or event wiring in compiled XAML). It is **not intended for direct use** by application code and is auto-generated by the `PresentationBuildTasks` MSBuild task during the build process.
|
||||
|
||||
### 2. Public Interface
|
||||
The class is `sealed` and inherits from `InternalTypeHelper`. All members are `protected override` methods—**not public API**—but are included here for completeness.
|
||||
|
||||
- **`protected override object CreateInstance(Type type, CultureInfo culture)`**
|
||||
Instantiates the given `type` using reflection, allowing both public and non-public constructors (via `BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance`). Returns the new instance.
|
||||
|
||||
- **`protected override object GetPropertyValue(PropertyInfo propertyInfo, object target, CultureInfo culture)`**
|
||||
Reads the value of `propertyInfo` on `target` using default binding flags (`BindingFlags.Default`). Returns the property value.
|
||||
|
||||
- **`protected override void SetPropertyValue(PropertyInfo propertyInfo, object target, object value, CultureInfo culture)`**
|
||||
Writes `value` to `propertyInfo` on `target` using default binding flags.
|
||||
|
||||
- **`protected override Delegate CreateDelegate(Type delegateType, object target, string handler)`**
|
||||
Dynamically creates a delegate of `delegateType` bound to the instance method named `handler` on `target`. Uses reflection to invoke the *non-public* instance method `_CreateDelegate` on `target.GetType()`.
|
||||
⚠️ **Note**: This relies on an internal implementation detail (`_CreateDelegate`) of the target object’s type.
|
||||
|
||||
- **`protected override void AddEventHandler(EventInfo eventInfo, object target, Delegate handler)`**
|
||||
Attaches `handler` to the event represented by `eventInfo` on `target` using `EventInfo.AddEventHandler`.
|
||||
|
||||
### 3. Invariants
|
||||
- The class is `sealed` and inherits from `System.Windows.Markup.InternalTypeHelper`, meaning it is tightly coupled to WPF’s XAML infrastructure.
|
||||
- All methods use reflection with explicit `BindingFlags`; no method relies on dynamic invocation beyond what is visible in the source.
|
||||
- The `CreateDelegate` method assumes the `target` object’s type exposes a non-public instance method named `_CreateDelegate` accepting `(Type, string)`—this is an internal contract with WPF’s runtime, not a documented public API.
|
||||
- The class is marked with `[EditorBrowsable(EditorBrowsableState.Never)]`, indicating it should never appear in IntelliSense or designer tooling.
|
||||
|
||||
### 4. Dependencies
|
||||
- **Depends on**:
|
||||
- `System.Windows.Markup.InternalTypeHelper` (base class)
|
||||
- `System.Activator`, `System.Reflection` (for reflection-based object creation/property/event handling)
|
||||
- `System.Globalization.CultureInfo` (for culture-sensitive operations)
|
||||
- `PresentationBuildTasks` (the MSBuild task that generates this file)
|
||||
- **Used by**:
|
||||
- WPF’s XAML compiler/runtime (e.g., `BamlReader`, `XamlWriter`, or generated BAML code) during deserialization or event wiring.
|
||||
- Likely referenced indirectly via `x:Class` or `x:Name` in XAML files compiled into the same assembly.
|
||||
- *Not* referenced directly by application code.
|
||||
|
||||
### 5. Gotchas
|
||||
- **Auto-generated file**: This file is regenerated on every build; manual edits will be lost.
|
||||
- **Non-public contract**: The `_CreateDelegate` reflection call in `CreateDelegate` is fragile—it depends on an undocumented, internal method of the target type. If the target type changes or does not implement `_CreateDelegate`, this will throw a `MissingMethodException` at runtime.
|
||||
- **No public surface area**: This class is strictly internal infrastructure. Developers should never instantiate or extend it.
|
||||
- **Culture handling**: All methods accept a `CultureInfo` parameter but pass it directly to reflection APIs—behavior may vary across cultures (e.g., case sensitivity in property/event names is not affected, but custom type converters might be).
|
||||
- **No error handling visible**: The source shows no explicit exception handling; failures (e.g., missing methods, inaccessible properties) will propagate as reflection exceptions.
|
||||
- **None identified from source alone** for typical usage patterns—only the above technical caveats are evident.
|
||||
Reference in New Issue
Block a user