//something else has to register network classes because its unknown at this point. public static void RegisterNonSavedClasses <V>(this IGamePackageRegister thisContainer) { //thisContainer.RegisterSingleton<ListContainer, ListContainer>(); //maybe try it here now. thisContainer.RegisterSingleton <IPlayOrder, PlayOrderClass>(); Assembly thisAssembly = Assembly.GetAssembly(typeof(V)) !; CustomBasicList <Type> thisList = thisAssembly.GetTypes().Where(items => items.HasAttribute <SingletonGameAttribute>()).ToCustomBasicList(); thisList.ForEach(items => { thisContainer.RegisterSingleton(items); }); thisList = thisAssembly.GetTypes().Where(items => items.HasAttribute <InstanceGameAttribute>()).ToCustomBasicList(); thisList.ForEach(items => { thisContainer.RegisterInstanceType(items); }); }