14

Before asp.net 5 I would add "internalsVisibleTo(some.namespace.name)" to AssemblyInfo.cs - But I no longer have assemblyInfo.cs in my WebApi project.

How do I expose internals in a WebAPI project to my unitTest project?

abatishchev
  • 98,240
  • 88
  • 296
  • 433
jenspo
  • 504
  • 4
  • 11
  • I would've assumed the [project.json](https://github.com/aspnet/Home/wiki/Project.json-file) file, but I can't find it in the schema. – NikolaiDante Jan 12 '16 at 11:58

3 Answers3

21

You can add your own AssemblyInfo.cs file. Just add a class file, name it AssemblyInfo.cs (or any name for that matter), and replace all of its code with the following line:

[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("some.assembly.name")]
Keith
  • 20,636
  • 11
  • 84
  • 125
2

You can see an example of the above answer in action in the asp open sourced MVC project available on github:

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

One of the best ways of figuring this stuff out is to get in there and have a dig about.

Good luck.

ahammond
  • 325
  • 4
  • 13
2

While creating an AssemblyInfo.cs file is an option, I prefer to configure this in my project file.

Add this to your .csproj file:

<ItemGroup>
  <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
    <_Parameter1>$(AssemblyName).Tests</_Parameter1>
  </AssemblyAttribute>
</ItemGroup>
eddex
  • 1,622
  • 1
  • 15
  • 37