Как сделать свойство защищенным И внутренним в C #?

Вот мой сокращенный абстрактный класс:

abstract class Report {

    protected internal abstract string[] Headers { get; protected set; }
}

Вот производный класс:

class OnlineStatusReport : Report {

    static string[] headers = new string[] {
        "Time",
        "Message"
    }

    protected internal override string[] Headers {
        get { return headers; }
        protected set { headers = value; }
    }

    internal OnlineStatusReport() {
        Headers = headers;
    }
}

Идея в том, я хочу иметь возможность позвонитьReport.Headers из любой точки сборки, но разрешить ее установку только производным классам. Я пытался сделатьHeaders только внутренний, но защищенный не считается более строгим, чем внутренний. Есть ли способ сделать заголовки внутренними, а их набор доступа защищенными и внутренними?

Мне кажется, что я неправильно использую модификаторы доступа, поэтому любая помощь в разработке была бы очень полезна.

Ответы на вопрос(7)

Ваш ответ на вопрос