public void ObtenerPropiedadesInstancia()
        {
            var target = new Clase();
            var result = target.GetType().GetProperties();

            Assert.AreEqual(1, result.Count());
        }
        public void ObtenerValorProperty()
        {
            var target = new Clase();

            target.PropiedadPublica = "PropiedadPublica";
            var result = target.GetType().GetProperty(nameof(Clase.PropiedadPublica)).GetValue(target);

            Assert.AreEqual("PropiedadPublica", result);
        }
        public void ObtenerValorField()
        {
            var target = new Clase();

            target.CampoPublico = "valorCampoPublico";
            var result = target.GetType().GetField(nameof(Clase.CampoPublico)).GetValue(target);

            Assert.AreEqual("valorCampoPublico", result);
        }
        public void EjecutarMetodo()
        {
            var target = new Clase();

            target.PropiedadPublica = "PropiedadPublica";
            var result       = target.GetType().GetMethod(nameof(Clase.MetodoPublico));
            var resultMethod = result.Invoke(target, new object[] {});

            Assert.AreEqual(nameof(Clase.MetodoPublico), resultMethod);
        }