public virtual void Chain(ChainableReader parentChainedReader)
{
if (parentChainedReader == null) {
throw new ArgumentNullException("parentChainedReader", "Argument can not be null");
}
//Assign delegates
InternalRead = new internalRead(parentChainedReader.Read);
InternalPeek = new internalPeek(parentChainedReader.Peek);
InternalClose = new internalClose(parentChainedReader.Close);
//This is just a reader in the chain
_baseReader = false;
}