public List <T> GetObjectsCollectionFromConfigurationNode <T>(string firstObjectPath) where T : class
        {
            if (string.IsNullOrEmpty(firstObjectPath))
            {
                return(default(List <T>));
            }
            //var objectsNodes = MainConfigurationNode.SelectNodes(anyObjectPath);
            var objectsNodes        = XmlHelper.SmartSelectNodes(MainConfigurationNode, firstObjectPath);
            var resultingCollection = new List <T>();

            foreach (XmlNode objectsNode in objectsNodes)
            {
                var instantiatedObj = GetObjectFromConfigurationNode <T>(objectsNode);
                resultingCollection.Add(instantiatedObj);
            }
            return(resultingCollection);
        }