Core and Collections Components
Foundation types, console, URI, time zones, buffers, collections and component model.
Targets in this family
| Component | Kind | Production dependencies | Representative header |
|---|---|---|---|
Core.Base | static | — | SharpRuntime/Experimental/Property.hpp |
Console | static | Core.Base | System/Console.hpp |
Uri | static | Core.Base | System/Uri.hpp |
TimeZone | static | Core.Base | System/InvalidTimeZoneException.hpp |
Buffers | interface | Core.Base | System/Buffers/ArrayBufferWriter.hpp |
Collections.Core | interface | Core.Base | System/Collections/ArrayList.hpp |
Collections.Blocking | interface | Collections.Core, Core.Base, Threading | System/Collections/Concurrent/BlockingCollection.hpp |
Collections.Async | interface | Threading | System/Collections/Generic/IAsyncEnumerable.hpp |
Collections.ObjectModel | interface | Collections.Core, ComponentModel, Core.Base | System/Collections/ObjectModel/ObservableCollection.hpp |
ComponentModel | interface | Core.Base | System/ComponentModel/AsyncCompletedEventArgs.hpp |
Foundation
Core.Base owns the foundational object/type model, primitive wrappers, strings, arrays, spans and memory types, delegates and exceptions. Console, Uri and TimeZone are narrow optional physical targets; the older Core target aggregates them.
Collection split
| Component | Purpose |
|---|---|
Collections.Core | Synchronous generic/non-generic collection fundamentals |
Collections.Blocking | BlockingCollection and its threading closure |
Collections.Async | Asynchronous enumerable contracts |
Collections.ObjectModel | Observable and object-model collection behavior |
ComponentModel | Notifications, async completion shapes and component-model contracts |
Behavior notes
- Enumerator versioning is enforced for mutable collection families; it follows native implementation details rather than a promise of universal .NET parity.
- Concurrent, blocking and async families have distinct scheduling and lifetime concerns.
- Floating-point comparer behavior has explicit compatibility decisions; do not assume host
operator==is always the intended key policy. - Object-model notifications are typed C++ callback behavior; callback lifetime remains native.
Complete catalogue
See all 41 physical components for external dependencies, ownership and direct graph details.