C # - Propriedades internas “legíveis” no quickwatch, mas sem usar reflexão?

Vejo que a janela "Quick Watch" tem acesso a todas as propriedades, independentemente de restrições de acesso (internas, protegidas, privadas) de uma classe em uma biblioteca, mesmo quando a biblioteca é referenciada em um aplicativo, lib e espaço para nome totalmente diferentes. Considerando que não estou encontrando uma maneira de acessá-los usando "reflexão". Estou especialmente tentando "ler" (observe - apenas leia) a propriedade interna de uma montagem. Se isso não for possível através do design de como "interno" funciona (não acessível fora do mesmo espaço para nome), como é que ele é "lido" pela janela "Observação rápida" em VS.NET

Aqui está o código de exemplo que eu usei:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestLib
{
    public class TestInteralProp
    {
        internal string PropertyInternal
        {
            get { return "Internal Property!";  }
        }

        protected string PropertyProtected
        {
            get { return "Protected Property!"; }
        }

        string PropertyPrivate
        {
            get { return "Private Property!"; }
        }

        public string PropertyPublic
        {
            get { return "Public Property!";  }
        }

        protected internal string PropertyProtectedInternal
        {
            get { return "Protected Internal Property!"; }
        }
    }
}

Quando crio um objeto para a classe TestInernalProp, posso ver todas as 4 propriedades no quickwatch -

E quando eu uso a reflexão para acessar qualquer uma delas, exceto a propriedade pública (PropertyPublic), recebo uma exceção de referência nul

//this works
propTestObj.GetType().InvokeMember("PropertyPublic", System.Reflection.BindingFlags.GetProperty, null, propTestObj, null);
//this fails (obviously)
propTestObj.GetType().InvokeMember("PropertyInternal", System.Reflection.BindingFlags.GetProperty, null, propTestObj, null);

//this works
propTestObj.GetType().GetProperty("PropertyPublic").GetValue(propTestObj, null);
//this fails again
propTestObj.GetType().GetProperty("PropertyInternal").GetValue(propTestObj, null)

Não sei ao certo como o "Quick Watch" pode obter acesso a ele