# Third-Party Code Elements Used

Trend Metric Trend Metrics / Third-Party Usage

CQLinq source

This trend metric 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.

// <TrendMetric Name="# Third-Party Code Elements Used" Unit="Code Elements" />
from elem in ThirdParty.CodeElements
where !(elem.IsField && elem.AsField.ParentType.IsEnumeration)
let users = elem.IsMethod ?    elem.AsMethod.MethodsCallingMe.Cast<ICodeElement>() :
            elem.IsField  ?    elem.AsField.MethodsUsingMe.Cast<ICodeElement>() :
            elem.IsType ?      elem.AsType.TypesUsingMe.Cast<ICodeElement>() :
            elem.IsNamespace ? elem.AsNamespace.NamespacesUsingMe.Cast<ICodeElement>() :
                               elem.AsAssembly.AssembliesUsingMe.Cast<ICodeElement>()
select new { elem, users }

Trend Metrics / Third-Party Usage: all 6 items