如何(轻松)找到给定命名空间的正确程序集

时间:2011-02-09 13:50:56

标签: .net assemblies

我对某些属性有一些问题。我找不到合适的装配。我在谷歌上找不到它们:

 [Key, Column(Order = 0)]
 [DatabaseGenerated(DatabaseGenerationOption.None)]

this代码中,声明了以下命名空间:

using System.Data.Entity.Database;
using System.Data.Entity.Infrastructure;

在哪里可以找到这些命名空间的程序集?除了在Google上搜索命名空间之外,还有一种简单的方法来查找程序集吗?

7 个答案:

答案 0 :(得分:2)

如果您引用了程序集:

  • 去宣言。 (当光标位于您要搜索的定义上时,Visual Studio中的F12。)
  • 应弹出对象浏览器。在树的根部,你可以看到装配。

当您没有引用程序集时:

  • 您仍然可以使用对象浏览器搜索您的程序集(查看 - >对象浏览器)。
  • 在下拉框中,选择“所有组件”,...并搜索。

当您要查找的课程不是来自Microsoft:

您正在寻找的课程似乎不是来自微软。在这种情况下,您可以在对象浏览器中创建“自定义组件集”。您可以添加要搜索的所有第三方程序集。最后,如果你自己没有这些组件,我想剩下要做的就是谷歌了。

答案 1 :(得分:2)

从项目中删除所有System.Data.*引用,添加EntityFramework引用,选项为DatabaseGeneratedOption(不是DatabaseGenerationOption)。

答案 2 :(得分:1)

问题是namespace不是CLR中的一等公民。 namespace + class name构成完整的类名。所以它只是一个共同的前缀。明显的结论是命名空间可以分布在不同的程序集中。您可以尝试逐个加载程序集并检查每个类型的前缀(StartsWith)的全名,它将是您要查找的命名空间名称。

答案 3 :(得分:1)

也许有点晚了,但我遇到了同样的问题,这就是我所做的修复它:

  1. 按照以下说明安装最新版本的Entity Framework: http://nuget.org/packages/entityframework

  2. 出于某种原因,他们更改了属性的名称,而不是 DatabaseGenerationOption
    DatabaseGeneratedOption

  3. 更改它

    它有效。

答案 4 :(得分:0)

MSDN docs开始,此命名空间中的大多数类都在System.Data.Entity.Design.dll中,所以我认为应该是这样。

所有MSDN文档页面都提到命名空间和程序集。

答案 5 :(得分:0)

这是一个很好的问题,我担心我不知道比谷歌更好的答案,或MSDN,如果它是微软的东西。

由于可以在多个程序集中声明给定名称空间这一事实使问题更加复杂。相反,程序集可以声明多个命名空间。

请注意,this问题几乎与我正在回答的问题部分重复。

答案 6 :(得分:-1)

以下是您的解决方案添加此命名空间解析:

using System.ComponentModel.DataAnnotations.Schema;