sealed class Tinman.Core.Cx.XmlDoc.CxXmlDocReference

Represents the content of a cref attribute and references a type or member:

Referring to non-generic type or member:
<... cref="name">
Referring to generic type or member:
<... cref="name{T}">
<... cref="name{T1,T2,...}">
<... cref="name-a{T}.name-b">
<... cref="name-a{T1,T2,...}.name-b">
Referring to method:
<... cref="name()">
<... cref="name(T,...)">
<... cref="name-a{...}.name-b()">
<... cref="name-a{...}.name-b(T,...)">

where name corresponds to ICxNameContainer.Name, {...} to Arguments, (…​) to ICxTypesContainer.Types, name-a to CxName.Parent of ICxNameContainer.Name and name-b to CxName.Last of ICxNameContainer.Name.

ICxNameContainer.Name returns the name of the referenced type or member.
ICxTypesContainer.Types returns the list of method parameter types, which will be null if this is not an explicit reference to a method.

See also


Public / Constructors


public constructor CxXmlDocReference → (3)

name in : CxName

See CxName.

arguments opt : int32 = 0

See Arguments.

types opt : IBagConst<CxType> = null

See ICxTypesContainer.Types. Iff null, IsMethod will return false.

Creates a new instance of CxXmlDocReference.

Public / Attributes


public attribute Arguments → (get)

value : int32

< 0 : negative argument count of the type of the method ICxNameContainer.Name refers to,
= 0 : ICxNameContainer.Name refers to a non-generic type or member,
> 0 : argument count of the type ICxNameContainer.Name refers to.

Returns the number of generic type arguments of the type referred to by ICxNameContainer.Name.

Type arguments must have the same names as in the generic type declaration and must appear in the same order.


public attribute IsMethod → (get)

value : bool

true if this is an explicit reference to a method,
false if this is a reference to a non-method PSI node.

Is this an explicit reference to a method, using ICxTypesContainer.Types to refer to the method signature?