How do i get all static classes that i build within a class

so i have a class called Artifact that is going to contain a lot of static “Artifacts Data” inside so i can just grab it and use it without declaring a reference.

public class ArtifactData
{
    public string ArtifactName;
    public bool isOwned = false;
    public int Artifactlevel;

    public delegate void ArtifactEffect();
    public ArtifactEffect Effect;
    public ArtifactEffect EffectOver;

    /*
    public static void SearchForArtifact()
    {
        ArtifactData[] AllArtDatas = new ArtifactData[] {UniversalStone };

        var AllArtifacts = typeof(ArtifactData).GetConstructors();

        Debug.Log(AllArtifacts);
    }
    */

    //------------------------------------------------------
    public static ArtifactData UniversalStone = new ArtifactData
    {
        ArtifactName = "Universal Stone",
        isOwned = false,
        Artifactlevel = 0,
        Effect = () =>
        {
            GameDatas.Strength *= (1+(ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.endurance  *= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.agility *= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.magic *= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.will *= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
        },
        EffectOver = ()=>
        {
            GameDatas.Strength /= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.endurance /= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.agility /= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.magic /= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
            GameDatas.will /= (1 + (ArtifactData.UniversalStone.Artifactlevel / 10));
        }
       
    };
}

then i ran into a problem, i wanted to get all of its static members, but i don’t want to put them in one by one because i probably will add more in later, that will be very messy. Is there any way i can just get them all at once using some magic codes?

i have been searching online and found something called getConstructers and getNestedTypes, but those seem not working for my situation.

Reflection can get you post-compile time information about classes in your assemblies.

You really do NOT want to go with this approach for generic game programming. It eliminates the compiler’s ability to detect errors in your code if you are asking for everything by its name. Any other way is at least 100 times better, especially just starting out making a new system.

Even doing a code-generation step based on code analysis or some kind of WSDL would be better.