private static void obfuscatorDllByPath(string path)
        {
            string folder = path.Replace(Path.GetFileName(path), "");

            if (File.Exists(path))
            {
                DirectoryInfo    info         = new DirectoryInfo(Application.dataPath);
                HashSet <string> jsonNameList = new HashSet <string>();
                FindJsonClassInProject(info, jsonNameList);

                EditorUtility.ClearProgressBar();
                Obfuscator obfuscator = new Obfuscator(folder, true, true, false, true, true);

                #region exclude
                var itr = jsonNameList.GetEnumerator();
                while (itr.MoveNext())
                {
                    obfuscator.ExcludeType(itr.Current);
                }
                itr.Dispose();

                //TODO
                //add the class use reflect, such as the classes inherit MonoBehavouir
                //the string just is partner of baseType's fullName
                obfuscator.ExcludeBase("UnityEngine");
                #endregion

                obfuscator.AddAssembly(path, true);
                obfuscator.Progress += obfuscator_NameObfuscated;
                obfuscator.StartObfuscation();
            }
            EditorUtility.ClearProgressBar();
        }
        public static void ObfuscatorDllByPathList(string folder, List <string> path, bool isBatchMode)
        {
            EditorUtility.ClearProgressBar();
            Obfuscator obfuscator = new Obfuscator(folder, true, true, false, true, true);

            #region exclude
            //TODO
            //add the class use reflect, such as the classes inherit MonoBehavouir
            //the string just is partner of baseType's fullName
            obfuscator.ExcludeBase("UnityEngine");
            //obfuscator.CustomExcludeFun += you function
            //like just obfuscator you code namespace
            #endregion

            for (int i = 0, imax = path.Count; i < imax; ++i)
            {
                obfuscator.AddAssembly(path[i], true);
            }
            if (!isBatchMode)
            {
                obfuscator.Progress += obfuscator_NameObfuscated;
            }
            obfuscator.StartObfuscation();
            if (!isBatchMode)
            {
                EditorUtility.ClearProgressBar();
            }
        }