Я задавал этот вопрос нескольким людям, и до сих пор у меня нет ответа.
ASP.NET C #
Дерево проекта (файлы и папки):
> (ROOT)
>
> Class MyAccess (namespace myproject.core)
>
> (Directory John)
------> Class MyJohn (namespace myproject.core.John)
------> Class JohnSecret (namespace myproject.core.John)
------> Class OtherJohnSecret (namespace myproject.core.John)
>
> (Directory Paul)
------> Class MyPaul (namespace myproject.core.Paul)
------> Class PaulSecret (namespace myproject.core.Paul)
Как я могу использовать (общедоступный, закрытый, защищенный, внутренний) ????? иметь такое поведение:
- class MyJohn видит и может создавать объекты из всех классов в папке John (все его секреты)
- Класс MyPaul ведет себя так же, но внутри папки Пола
- Все эти секреты нельзя использовать вне этих папок.
Примеры:
- MyPaul может использовать все свои секреты и общаться с классами MyAccess и MyJohn.
- MyPaul, MyJohn, MyAccess будет общедоступным или внутренним
- MyAccess не может использовать PaulSecret.
Решения, которые мне не нравятся:
Сделай секреты Джона охраняемыми и наследственными. MyJohn
* +1040 * Пример: * * тысяча сорок один
> protected JohnSecret
> internal MyJohn:JohnSecret
плохо, потому что если у меня есть 100 секретов класса, мне нужно что-то вроде:
> internal MyJohn:JohnSecret1, JohnSecret2,....,JohnSecret100
Есть классы внутри классов:
> internal class MyJohn {
>
> internal string DoSomething(){}
>
> private class JohnSecret{}
> private class JohnSecret2{}
> private class JohnSecret3{}
>
> }
Это нехорошо, потому что, опять же, если у меня будет 100 секретов, у меня будет ОГРОМНЫЙ файл, я не смогу разбить этот код на разные файлы исходного кода.
Кто-нибудь может дать хорошее решение?
Я ценю:)
Большое спасибо.