public static void Register(Type luFileInfoType)
        {
            LUFileInfo luFileInfo = Activator.CreateInstance(luFileInfoType) as LUFileInfo;

            if (luFileInfo == null)
            {
                throw (new ArgumentException("Is not LUFileInfo type.", "luFileInfoType"));
            }
            try {
                _LUFileInfos.Add(luFileInfo.Id, luFileInfo);

                string[] sa = luFileInfo.Extensions.Replace(" ", "").Split(',');
                if (sa.Length == 0)
                {
                    sa = new string[] { "" };
                }
                foreach (string ext in sa)
                {
                    LUFileExtension lufExt = new LUFileExtension(ext, luFileInfo);
                    if (_Extensions.ContainsKey(lufExt.Key))
                    {
                        throw (new Exception(string.Format("Extension \"{0}\" is already exist in base.", lufExt.Extension)));
                    }
                    _Extensions.Add(lufExt.Key, lufExt);
                }
            } catch {
                throw (new Exception(string.Format("LUFileInfo.Id={0} already exist", luFileInfo.Id)));
            }
        }
        public static LUFileInfo GetLUFileInfo(FileInfo file)
        {
            LUFileExtension lufExt = null;

            LUFileExtension.LUFileExtensionKey lufExtKey = new LUFileExtension.LUFileExtensionKey(file.Extension);
            _Extensions.TryGetValue(lufExtKey, out lufExt);

            if (lufExt == null)
            {
                lufExtKey = new LUFileExtension.LUFileExtensionKey("");
                _Extensions.TryGetValue(lufExtKey, out lufExt);
            }

            if (lufExt == null)
            {
                throw (new Exception("Can`t find extension info"));
            }

            return(lufExt.LUFileInfo);
        }