private SubMaterialManager()
        {
            SubMaterialList = new SubMaterialListInfo();
            Load(CONFIG_PATH);
            SubMaterialList.Initialize();

            foreach (var property in SubMaterialList.GetType().GetProperties())
            {
                var propertyValue = property.GetValue(SubMaterialList, null);
                if (propertyValue == null) continue;
                if (propertyValue is SubMaterial)
                {
                    _subMaterialItems.Add((SubMaterial)propertyValue);
                }
            }
        }
        private void Load(string filename)
        {
            if (File.Exists(filename) == false) return;

            try
            {
                FileStream fs = new FileStream(filename, FileMode.Open);
                XmlReader sr = XmlReader.Create(fs);
                XmlSerializer xs = new XmlSerializer(SubMaterialList.GetType());
                SubMaterialList = (SubMaterialListInfo)xs.Deserialize(sr);
            }
            catch (Exception e)
            {
                LogManager.Instance.WriteSystemLog(e.ToString());
            }
        }