【问题标题】:how can i access internals in asp.net 5我如何在 asp.net 5 中访问内部结构
【发布时间】:2016-04-16 23:55:23
【问题描述】:

在 asp.net 5 之前,我会将“internalsVisibleTo(some.namespace.name)”添加到 AssemblyInfo.cs - 但我的 WebApi 项目中不再有 assemblyInfo.cs。

如何将 WebAPI 项目中的内部结构暴露给我的 unitTest 项目?

【问题讨论】:

  • 我会假设 project.json 文件,但我无法在架构中找到它。

标签: c# unit-testing asp.net-web-api internalsvisibleto


【解决方案1】:

您可以添加自己的 AssemblyInfo.cs 文件。只需添加一个类文件,将其命名为 AssemblyInfo.cs(或任何名称),然后将其所有代码替换为以下行:

[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("some.assembly.name")]

【讨论】:

    【解决方案2】:

    您可以在 github 上的 asp 开源 MVC 项目中看到上述答案的示例:

    https://github.com/aspnet/Mvc/blob/e2fd41e416ce1d84e13734ebfb56e64094607d01/src/Microsoft.AspNetCore.Mvc.Abstractions/Properties/AssemblyInfo.cs

    找出这些东西的最佳方法之一是进入那里并进行挖掘。

    祝你好运。

    【讨论】:

    • 文件不存在。也许你应该链接到某个提交。
    • 更改为代码存在的示例提交。
    • @ahammond 似乎无法正常工作。即使在创建 AssemblyInfo.cs 文件之后。这仍然是这样做的方式吗?
    【解决方案3】:

    虽然可以选择创建AssemblyInfo.cs 文件,但我更喜欢在我的项目文件中进行配置。

    将此添加到您的 .csproj 文件中:

    <ItemGroup>
      <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
        <_Parameter1>$(AssemblyName).Tests</_Parameter1>
      </AssemblyAttribute>
    </ItemGroup>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      • 2012-01-30
      • 2016-09-10
      • 1970-01-01
      • 2019-05-29
      相关资源
      最近更新 更多