这个命名空间需要什么NuGet?

时间:2018-03-15 21:14:35

标签: c# nuget claims-based-identity

我可以更具体地提出这个问题,但是,我不时会遇到这个问题,最后放弃并在S.O上创建了这个问题。

对于这种特殊情况,我正在遵循当前API中how to call a downstream API的Microsoft指南

在上述文章中,我尽职地从Microsoft的github帐户下载了源代码..并将所需的源代码片段复制到我的项目中..

除了我的Visual Studio IDE在this one piece of code(只有最后一段)之下放置一些小错误之外,所有东西都准备好编译了。

System.IdentityModel.Tokens.BootstrapContext

我已经浪费了半小时或更长的时间来尝试将大量的Nuget packages.conf文件与我自己的文件进行比较..并且真的不想将超过必要的内容移植到我自己的项目中..

是否有一些神奇的方法来辨别我需要的 WHICH nuget?我知道如何右键单击并Go to definition但是..有时候类名和/或命名空间不是一个直接的死亡赠品

所有你的评论之后更新

我是否承认我已经进行了近12年的.NET开发?不,我最好不要......

我会说,在我的辩护中,我确实把它放在了我的使用中...... System.IdentityModel

它一直是灰色的,这让我想到了:

  • 我一定已经引用了这个,否则就会有红色的曲线
  • 但是,它不是大胆的白色,这意味着它是不必要的

我没有想到:

  • “因为我有System.IdentityModel.Tokens.Jwt nuget,它现在是一个合法的命名空间,但我还没有中央DLL”
  • 我也没想到,在这个相当新的OAuth令牌安全世界中,当包括厨房水槽在内的所有其他东西都是一个nuget时,任何这些身份资料都会出现在我已安装的框架中

所以,希望你们可口可乐喷出你的鼻子(我可以听到你们在大厅里的厨房里大声笑声) - 可以停止笑得足够长,以便让兄弟有些松懈

1 个答案:

答案 0 :(得分:5)

在您的情况下,它看起来像是一个系统程序集(System.IdentityModel.dll)。但是,如果它是NuGet包,您可以通过以下方式找到哪一个:

  1. 右键单击类名(不是命名空间)并选择Go To Definition
  2. 在显示的文件顶部是#region,展开该区域
  3. 在区域内是一条注释,其中包含dll的路径,该路径中的名称是NuGet包的名称。
  4. 编辑: 看起来即使在你的情况下这也会起作用,当我为BootstrapContext执行此操作时的评论就在这里:

    C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IdentityModel.dll
    

    此目录表明它可从Add Reference - >获得。 Assemblies