This project is read-only.


The Nuclex.Support library is a general-purpose class library that is not bound to XNA. It contains functionality that is useful in all kinds of projects. This functionality includes additional Collection classes not provided by the .NET Framework (like a multi-array based Deque as known from C++ or a PriorityQueue), command-line parsing, type-safe plug-ins and more.

As a supporting library, Nuclex.Support is referenced throughout the entire framework. And because errors in such a basic layer would be very annoying, everything that finds its way into this class library is meticulously checked, documented and tested.

Test coverage for the entire assembly (excluding the unit tests themselves) is 100.0% and continuous integration builds of any code committed to this assembly will automatically execute every unit test and verify coverage to make sure this requirement is met.


Nuclex.Support contains several collection classes that either implement new algorithms for Collections that are not supported by the .NET Framework or extend existing Collections to correct some oversights in the .NET Framework (such as the limited support for read-only collections and non-observability of the entire Collection selection)
  • Deque
  • ObservableCollection
  • ObservableDictionary
  • ParentingCollection
  • PriorityQueue
  • ReadOnlyCollection
  • ReadOnlyDictionary
  • ReadOnlyList
  • TransformingReadOnlyCollection
  • WeakCollection


Sometimes, the need arises to append one stream to the other or to provide a callee with access to only a region of a stream. Nuclex.Support provides some classes that can do this without creating huge temporary memory streams or even temporary files.
  • ChainStream
  • PartialStream
  • RingMemoryStream


Plugins are an elegant way to keep applications extensible and, even more important, force developers to avoid haphazard references between assemblies that might lead to a Big Ball of Mud forming.
  • Plugins


Other noteworthy classes in the Nuclex.Support library

Last edited Dec 3, 2009 at 9:03 PM by Cygon, version 15


tylerf001 Feb 19, 2012 at 7:46 AM 
I have not yet thoroughly read the docs or experimented with the full library, but merely adding Nuclex.Support along with Nuclex.Input significantly broken the functionality of my game. I have no idea if it's some sort of conflict with what I'm running or what, but removing Nuclex.Support resolved it. I had initially added it not knowing if it was needed. I then discovered that it's not needed for my usage of Nuclex.Input, and that it was the change responsible for breaking my game.

Very interesting...