c # esconde das classes dervidas algumas propriedades da classe base

Eu quero saber se é possível ocultar uma propriedade de classe base de uma classe derivada:

Exemplo:

    class BaseDocument
    {
        public string DocPath{get; set;}
        public string DocContent{get; set;}
    } 

    class DerviedDocument: BaseDocument
    {
     //this class should not get the DocContent property
        public Test()
        {
           DerivedDocument d = new DerivedDocument();
           d.//intellisense should only show me DocPath
             //I do not want this class to see the DocContent property
        }
    }

Eu não posso tornar a propriedade DocContent privada, porque eu quero instanciar a classe BaseDocument em outro lugar e usar a propriedade lá. Isso vai matar a ideia de uma propriedade de qualquer maneira.

Uma maneira de corrigir isso seria usar uma interface, por exemplo, IDoc, que expõe a propriedade DocPath e faz com que o BaseDocument e o DerivedDocument implementem a interface. Isso vai quebrar seu relacionamento pai-filho embora.

Eu posso brincar com as novas palavras-chave e substituir, mas isso não é o caminho certo, quer porque a criança ainda "vê" a propriedade

Eu tentei usar a palavra-chave 'selada' no DocContent, mas isso não parece resolver o problema também.

Eu entendo que isso 'quebra' a herança, mas eu acho que esse cenário deve estar chegando frequentemente onde uma criança precisa obter tudo o mais do pai, mas uma ou duas propriedades.

Como esses cenários podem ser tratados com graça?

questionAnswers(7)

yourAnswerToTheQuestion