2011-02-14 61 views
0

我有一个Visual Studio C#项目和一堆名为“OtherClasses”的子目录内的不同目录中的.cs(C#类)。目录结构如下:从其他目录动态导入C#类

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

因此在每个Package目录中都有C#类。我的问题是:是否有任何方法来从Visual C#目录内的主类中提取这些类?

另外我想,如果用户在程序中选择包N,那么只有该特定包的类被调用。我不知道是否有可能以某种方式实现这一目标。

谢谢。

+0

你是先编译它们还是这是`.cs`文件的松散集合? – 2011-02-14 04:30:58

回答

0

Visual Studio不关心目录结构。 (.cs)文件包含在项目中并进行编译,或者它们不包含在项目中,因此不会被编译。因此,无论不同文件在哪个文件夹中,只要其可见性(内部或公共)允许,就可以相互调用。

如果您希望用户能够从不同的类集中进行选择,除了依赖源代码目录之外,还必须使用其他方法来进行区分。

编辑
这假设你正在编译你的.cs文件作为一个项目。如果您要在程序运行时编译代码文件夹,那么代码如何交互将取决于您使用的方法的细节。

2

是的,您可以为每个软件包创建程序集,然后根据用户选择的内容动态加载它们。您甚至可以在运行时通过使用内置的c#编译器编译源文件来动态创建这些程序集。