Ответ 1
Просто НЕТ. Ничего, кроме его во вложенном классе
-
Классы и структуры, не вложенные в другие классы или структуры, могут быть либо общедоступными, либо внутренними. Тип, объявленный как открытый, доступен любым другим типом. Тип, объявленный как внутренний, доступен только для типов внутри одной и той же сборки. Классы и структуры объявляются как по умолчанию, если только ключевое слово public не добавлено в определение класса.
-
Определения класса или структуры могут добавить внутреннее ключевое слово, чтобы сделать их уровень доступа явным. Модификаторы доступа не влияют на сам класс или структуру - он всегда имеет доступ к самому себе и ко всем своим членам.
-
Элементы структуры, включая вложенные классы и структуры, могут быть объявлены как общедоступные, внутренние или частные. Члены класса, включая вложенные классы и структуры, могут быть общедоступными, защищенными внутренними, защищенными, внутренними или частными. Уровень доступа для членов класса и членов структуры, включая вложенные классы и структуры, по умолчанию является закрытым. Частные вложенные типы недоступны извне содержащего типа.
-
Производные классы не могут иметь большую доступность, чем их базовые типы. Другими словами, у вас не может быть открытого класса B, который происходит от внутреннего класса A. Если это было разрешено, это привело бы к тому, что A публично, потому что все защищенные или внутренние члены A доступны из производного класса.
Вы можете включить определенные другие сборки для доступа к вашим внутренним типам с помощью InternalsVisibleToAttribute.