Можно ли сделать все открытые переменные / методы / классы внутренними в Visual Studio во время компиляции? - PullRequest
0 голосов
/ 09 апреля 2010

Я хотел бы сделать все мои открытые переменные переменными / методами / классами внутренними при компиляции моего проекта Visual Studio. Исходный код не изменится, но когда скомпилированная библиотека будет готова, он должен иметь только внутренний доступ. Это возможно?

У меня есть "InternalsVisibleTo (" ClassLibrary ")", установленный в информационном файле сборки для всех проектов, однако я не хотел бы выполнять замену всех в "public" на "internal". Кто-нибудь знает, есть ли вокруг этого? Поэтому, когда я компилирую, собираю свой проект, проект релиза разрешает только внутренний доступ.

Спасибо и хорошего дня,

Джо

1 Ответ

1 голос
/ 09 апреля 2010

Я думаю, вы неправильно поняли использование атрибута InternalsVisibleTo. Он используется, чтобы разрешить коду в другой сборке доступ к типам и элементам, объявленным как internal.

Скажем, у вас есть AssemblyA, в которой у вас есть internal class SomeClass. Тогда у вас есть AssemblyB. Код в AssemblyB не может использовать SomeClass, поскольку в AssemblyA он равен internal. Затем в AssemblyA можно использовать InternalsVisibleTo, чтобы предоставить доступ AssemblyB для использования типов internal и членов AssemblyA.

Если вы просто хотите сделать код внутренним для AssemblyA, вам необходимо объявить типы с самого начала; для этого нет ярлыков.

...