Внутреннее ключевое слово работает так:
Основная цель внутреннего ключевого слова - предоставить каждому классу в вашей текущей сборке доступ к нему. Например, если у вас есть файл .dll и вы пометили некоторые из его классов как внутренние, только классы в этом .dll могут получить к нему доступ, и никакая другая внешняя сборка или внешняя программа не могут получить к нему доступ. Если вы используете GUI вне сборки, то вы только что нарушили то, для чего используется internal. Следовательно, вы должны сделать этот объект собственности публичным.
Хотя я не эксперт в c #, потому что я студент, я бы предложил иметь класс «соединителя», который служит соединением с внешними членами, которым требуется доступ к данным, и внутренними классами для установки новых данных. .