public object GetExtras(ExtraName key)
        {
            if (!extras.ContainsKey(key))
            {
                throw new Exception(string.Format("Key '{0}' is not existed", key));
            }

            return(extras[key]);
        }
 public void PutExtras(ExtraName key, object extras)
 {
     this.extras[key] = extras;
 }