Skip to content

Generates reference assemblies where all the internal types & members become public, and applies the IgnoresAccessChecksTo attribute

License

Notifications You must be signed in to change notification settings

aelij/IgnoresAccessChecksToGenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IgnoresAccessChecksTo Generator (MSBuild)

NuGet

The IgnoresAccessChecksToAttribute is the reverse of the InternalsVisibleToAttribute - it allows an assembly to declare assemblies whose internals would be visible to it. The attribute class isn't declared in the BCL but is recognized by the CLR (Desktop >= 4.6 and Core), i.e. you can declare it in your code and it would work.

Since there's currently no compiler support for this attribute (I've submitted a PR to Roslyn), this package can be used as a workaround. It generates reference assemblies where all the internal types & members become public, and adds a C# file with the attribute and its instances.

Usage

Just add the package and define IgnoresAccessChecksTo items with the assemblies you need access to.

<Project Sdk="Microsoft.NET.Sdk">

  <ItemGroup>
    <IgnoresAccessChecksTo Include="AssemblyToGrantAccessTo1" />
    <IgnoresAccessChecksTo Include="AssemblyToGrantAccessTo2" />
    <IgnoresAccessChecksToExcludeTypeName Include="Namespace.TypeName" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="IgnoresAccessChecksToGenerator" Version="0.8.0" PrivateAssets="All" />
  </ItemGroup>

</Project>

About

Generates reference assemblies where all the internal types & members become public, and applies the IgnoresAccessChecksTo attribute

Topics

Resources

License

Stars

Watchers

Forks

Languages