【问题标题】:splitting a namespace across projects跨项目拆分命名空间
【发布时间】:2011-05-02 04:04:56
【问题描述】:

我似乎在跨项目拆分命名空间时遇到了问题。

我有一个 DatabaseAccess 项目,其中有一个名为 SCS(某些疯狂系统)的文件夹,它为 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 命名空间的一部分。什么给了?

【问题讨论】:

标签: c# visual-studio-2010 namespaces projects-and-solutions


【解决方案1】:

您不仅将命名空间拆分到多个项目中,还拆分了类。我怀疑这是可能的,因为构造这样的对象通常非常困难,因为每个对象通常都严重依赖于......好吧,它本身! (扩展方法虽然可以提供类似的功能——尽管我不建议过度使用它们。文档也没有。)

你为什么不把那个部分和它的其他部分放在同一个项目中?

【讨论】:

  • 你是对的。我决定把部分放在同一个项目中。这样在架构上也更好。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2011-07-15
    相关资源
    最近更新 更多