跨项目拆分命名空间

时间:2010-10-28 23:36:17

标签: c# visual-studio-2010

我似乎无法跨项目拆分命名空间。

我有一个DatabaseAccess项目,它有一个名为SCS(Some Crazy System)的文件夹,它为SCS提供数据库的数据访问。现在这个SCS有实体框架(.edmx)生成的实体。我想在我的BusinessModel项目中扩展这些实体。但是我似乎无法这样做。下面是我的例子。我正在创建一个部分类,并在我的实际DatabaseAccess项目中创建一个与命名空间同名的命名空间:

namespace DatabaseAccess.SCS{
    public partial SomeEntity{
         public void DoSomething(){
             var x = this.GeneratedField;
         }
    }
}

执行上述操作无效。它抱怨GeneratedField不是SomeEntity类的一部分,即使它是。如果我弹出用于edmx的SCS.Designer,SomeEntity确实有GeneratedField的定义,SomeEntity是DatabaseAccess.SCS命名空间的一部分。是什么给了什么?

2 个答案:

答案 0 :(得分:1)

你不只是在那里的多个项目中拆分命名空间,而是在类中。我怀疑这是可能的,因为通常很难构造这样的对象,因为每个对象通常都依赖于......好吧,本身! (扩展方法可以提供类似的功能 - 虽然我不建议过度使用它们。文档也没有。)

为什么不在同一个项目中将其与其他部分区分开来?

答案 1 :(得分:0)

如果部分类不在同一个项目中,则必须添加对从其他项目构建的程序集的引用。否则,本地项目尚不知道该类以扩展它。