static GameAssetWriter() { writerClasses = new Dictionary <Type, Type>(); foreach (Type item in AssemblyUtility.FindClasses(typeof(GameAssetWriter), true, true)) { GameAssetWriterAttribute attribute = item.GetCustomAttribute <GameAssetWriterAttribute>(); writerClasses.Add(attribute.AssetType, item); } }
static GameModuleFactory() { ICollection <Type> moduleClasses = AssemblyUtility.FindClasses(typeof(GameModule), true, false); entries = new Dictionary <int, ConstructorInfo>(moduleClasses.Count); foreach (Type item in moduleClasses) { ClassIDAttribute attribute = item.GetCustomAttribute <ClassIDAttribute>(); if (attribute != null) { Debug.Assert(entries.ContainsKey(attribute.ClassID) == false); entries.Add(attribute.ClassID, item.GetConstructor(Type.EmptyTypes)); } } }