To follow Gergely's answer to NDepend, this tool can help do it in a smart way. Disclaimer: I am one of the developers of this tool
To achieve what you are asking for, you need to write Code Query over LINQ (CQLinq) . For example, we wrote such a request, on the one hand we have NDepend assemblies that invoke DevExpress assemblies. The CQLinq code request below matches the public DevExpress types used by NDepend, but also iteratively, it matches the internal DevExpress types used.
let devExpressTypes = Assemblies.WithNameLike("DevExpress").ChildTypes() let ndependTypes = Assemblies.WithNameLike("NDepend").ChildTypes() let publicDevExpressTypesUsed = devExpressTypes.UsedByAny(ndependTypes) let devExpressTypesUsedRec = publicDevExpressTypesUsed .FillIterative( types=> devExpressTypes.UsedByAny(types)) from t in devExpressTypesUsedRec.DefinitionDomain select new { t, depth = devExpressTypesUsedRec[t], ndependTypesUsingMe = t.TypesUsingMe.Intersect(ndependTypes) }
Then you can export part of the result to the NDepend dependency graph :
(Note the screenshot below for the depth of the DevExpress types. A depth of zero indicates that the public DevExpress type is directly called by the NDepend type. For such DevExpress types, the NDepend types that directly use it are listed. Of 1 means that the DevExpress type is used by the type directly used by the NDepend type. and so on...)

... and get the usage schedule of the type you are requesting:

source share