Динамический импорт классов C # из других каталогов - PullRequest
0 голосов
/ 14 февраля 2011

У меня есть проект Visual Studio C # и куча .cs (C # классы) в разных каталогах внутри одного подкаталога с именем «OtherClasses».Структура каталогов будет:

<Visual C# Directory>
      <bin>
      <obj>
      <Properties>
      <OtherClasses>
           <Package1>
           <Package2>

Таким образом, в каждом каталоге Package есть классы C #.У меня вопрос: есть ли способ выделить эти классы из основного класса в каталоге Visual C #?

Также я хотел бы, чтобы, если пользователь выбрал в программе пакет N, то только классы этого конкретного пакетавызваны.Я не знаю, возможно ли это как-то достичь.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Да, вы можете создавать сборки для каждого из пакетов, а затем загружать их динамически в зависимости от того, что выберет пользователь.Вы даже можете динамически создавать эти сборки во время выполнения, компилируя исходные файлы, используя встроенный компилятор c #.

0 голосов
/ 14 февраля 2011

Visual Studio не заботится о структуре каталогов. Либо файлы (.cs) включены в проект и скомпилированы, либо они не включены в проект и, следовательно, не скомпилированы. Поэтому независимо от того, в какой папке находятся разные файлы, они смогут вызывать друг друга, если это позволяет их видимость (внутренняя или открытая).

Если вы хотите, чтобы пользователь мог выбирать из различных наборов классов, вам придется использовать какой-то другой метод, чтобы провести различие, помимо использования каталога исходного кода.

Редактировать
Это при условии, что вы собираете ваши файлы .cs как один проект. Если вы собираетесь компилировать папки с кодом при запуске программы, то то, как код взаимодействует, будет зависеть от особенностей используемого вами метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...