public string GetDescriptionPath() { var path = new List <string>(); IDescription current = this; while (current != null) { path.Add(current.key); current = current.GetParent(); } path.Reverse(); return(string.Join(".", path.ToArray())); }