The Connected Properties library is just a thin wrapper around ConditionalWeakTable<TKey, TValue>.

Each "connector" is actually an instance of ConditionalWeakTable.

The wrapper provides the following advantages over using ConditionalWeakTable directly:
  • You may attach value types to carrier objects (ConditionalWeakTable values must be reference types).
  • Carrier objects are checked at runtime to prevent accidentally using an improper carrier object.
  • The API for accessing property values is more complete (e.g., Set) and does not have vexing exceptions (ConditionalWeakTable has a vexing exception for its Add method).

Last edited Aug 30, 2013 at 3:52 AM by StephenCleary, version 6

Comments

No comments yet.