private
в C# действительно является лишь частью спецификации языка; на языке C#, а также на языке Visual Basic или на любом другом разумном языке .NET (включая CIL, что компилируется на всех языках .NET) одному из них не разрешен доступ к private
(или protected
, если вы не находитесь в пределах производный класс) член на языке. Однако только потому, что язык не поддерживает публичный доступ к private
или protected
, члены не означают , базовая структура не может предоставить доступ к этим членам.
Это один из тех случаев, когда один, как правило, не следует использовать обходные пути, как отражения, чтобы получить доступ или изменить private
или protected
членов, но структура позволяет в любом случае. Как правило, у вас должно быть очень - хорошая причина для доступа private
или protected
членов; одна из таких причин, например, реализует сериализатор, который должен смотреть на внутреннее состояние объекта, чтобы правильно сериализовать объект. Если вы не делаете что-то подобное, вам следует по-настоящему взглянуть на переоценку класса, который вы ковыряете внутри, так что вам не нужно использовать отражение в вашей программе.
Ссылка не работает. Переместилось ли оно куда-то еще? –