virtual public IMetaData GetPortDataByID(IDataID idToSearch)
 {
     if (idToSearch.Equals(MetaData.Empty.DataID))
     {
         return(MetaData_ValueObject.Empty);
     }
     if (this.DataID.Equals(idToSearch))
     {
         return(this);
     }
     if (this.Children == null)
     {
         return(MetaData_ValueObject.Empty);
     }
     foreach (IMetaData_ValueObject value in this.Children)
     {
         if (!value.GetPortDataByID(idToSearch).Equals(MetaData_ValueObject.Empty))
         {
             return(value);
         }
     }
     return(MetaData_ValueObject.Empty);
 }