Sanguosha.Core.Games.GameEngine.LoadExpansions C# (CSharp) Méthode

LoadExpansions() public static méthode

public static LoadExpansions ( string folderPath ) : void
folderPath string
Résultat void
        public static void LoadExpansions(string folderPath)
        {
            Trace.TraceInformation("LOADING CARDSETS FROM : " + folderPath);
            var files = (from f in Directory.GetFiles(folderPath) where f.EndsWith(".dll") select f).OrderBy(
                        (a) => { int idx = Properties.Settings.Default.LoadSequence.IndexOf(Path.GetFileNameWithoutExtension(a).ToLower()); if (idx < 0) return int.MaxValue; return idx; });
            foreach (var file in files)
            {
                try
                {
                    Assembly assembly = Assembly.LoadFile(Path.GetFullPath(file));
                    var types = assembly.GetTypes();
                    foreach (var type in types)
                    {
                        if (type.IsSubclassOf(typeof(Expansion)))
                        {
                            var exp = Activator.CreateInstance(type) as Expansion;
                            if (exp != null)
                            {
                                if (expansions.ContainsKey(type.FullName))
                                {
                                    if (!expansions.ContainsValue(exp))
                                    {
                                        Trace.TraceWarning("Cannot load two different expansions with same name: {0}.", type.FullName);
                                    }
                                }
                                else
                                {
                                    LoadExpansion(type.FullName, exp);
                                }
                            }
                        }
                    }
                }
                catch (BadImageFormatException)
                {
                    continue;
                }
            }
        }