public ContextProperty(IContextProvider <IContextProperty <TValue>, TValue> defaultContext)
 {
     DefaultContext = defaultContext;
     ContextPool    = new ContextProviderTree(defaultContext);
 }
 public ContextProviderTreeNode(ContextProviderTree tree, IContextProvider <IContextProperty <TValue>, TValue> value)
 {
     _tree     = tree;
     _children = new List <ContextProviderTreeNode>();
     Value     = value;
 }