Вопрос
Есть ли в .NET Framework механизм, позволяющий скрывать один пользовательский тип от другого без использования отдельных проектов / сборок? Я не говорю о модификаторах доступа, чтобы скрыть членов Типа от другого типа - я имею в виду скрыть сам Тип.
Фон
Я работаю над проектом веб-сайта ASP.NET, и команда решила не использовать отдельные сборки проекта для разных уровней программного обеспечения. Поэтому я ищу способ иметь, например, папку DataAccess /, в которой я запрещаю его классам обращаться к другим типам в том же проекте веб-сайта ASP.NET. Другими словами, я хочу подделать слои и иметь какой-то механизм безопасности вокруг каждого слоя, чтобы он не мог получить доступ к другому.
Подробнее и подробности ...
Очевидно, что нет способа применить это ограничение, используя ключевые слова OO для конкретного языка, поэтому я ищу что-то еще, например: возможно, структуру доступа или механизм доступа к коду, может быть что-то, что использует метаданные, такие как Атрибуты. Даже то, что ограничивает одно пространство имен от доступа к другому. Я не уверен, какую окончательную форму он может принять.
Если бы это был C ++, я бы, вероятно, использовал бы friend
в качестве решения, которое в данном случае не переводится в C # internal
, хотя их часто сравнивают.
Мне все равно, действительно ли решение скрывает Типы друг от друга или просто делает их недоступными; однако я не хочу блокировать один тип из всех других, другая причина, по которой модификаторы доступа не являются решением. Ответа времени выполнения или времени разработки будет достаточно. Ищете что-то простое для реализации, иначе это не стоит усилий ...