Methods that should be declared as 'public' in C#, 'Public' in VB.NET

Code Query Visibility

Lists internal methods consumed outside their assembly thanks to System.Runtime.CompilerServices.InternalsVisibleToAttribute, via the property NDepend.CodeModel.IMember.ShouldBePublic: https://www.ndepend.com/api/NDepend.CodeModel.IMember.html#NDepend_CodeModel_IMember_ShouldBePublic

A query (not a rule): it informs that the code relies on the peculiar InternalsVisibleToAttribute behavior, not that methods should be public.

CQLinq source

This code query is written in CQLinq, C# LINQ over the NDepend code model. It ships with every new NDepend project: you can read it, adapt it, or use it as a starting point for your own custom rules.

// <Name>Methods that should be declared as 'public' in C#, 'Public' in VB.NET</Name>

from m in Application.Methods where 
  m.ShouldBePublic
let usedInAssemblies = m.MethodsCallingMe.ParentAssemblies().Except(m.ParentAssembly)
select new {
   m, 
   m.ParentAssembly,
   usedInAssemblies,
   m.MethodsCallingMe
}

//<Desc>
// Lists *internal* methods consumed outside their assembly thanks to
// *System.Runtime.CompilerServices.InternalsVisibleToAttribute*, via the
// property *NDepend.CodeModel.IMember.ShouldBePublic*:
// https://www.ndepend.com/api/NDepend.CodeModel.IMember.html#NDepend_CodeModel_IMember_ShouldBePublic
//
// A query (not a rule): it informs that the code relies on the peculiar
// *InternalsVisibleToAttribute* behavior, not that methods should be public.
//</Desc>

Visibility: all 12 items