Class VBProjectType
The base data type for a project or library - the object at the top of any symbol hierarchy, that defines the root workspace Uri for everything under it.
public abstract record VBProjectType : VBType, IEquatable<VBType>, IEquatable<VBProjectType>
- Inheritance
-
VBProjectType
- Implements
- Derived
- Inherited Members
Constructors
VBProjectType(string, Uri, ProjectTypeId)
The base data type for a project or library - the object at the top of any symbol hierarchy, that defines the root workspace Uri for everything under it.
protected VBProjectType(string Name, Uri Uri, ProjectTypeId ProjectTypeId)
Parameters
NamestringThe semantically valid identifier name of this project or library.
UriUriThe root workspace
Urifor this project or library.ProjectTypeIdProjectTypeIdDescribes the type of project or library.
Properties
DefaultValue
Gets the default value for this data type.
public override VBTypedValue DefaultValue { get; }
Property Value
Remarks
⚠️ Derived types must back the implementation of this property with a thread-safe private static readonly Lazy<T>.
Failure to do so would lock up the static context initialization of the StaticSymbol symbols.
Modules
An immutable array containing a Uri identifying each module in this library.
public ImmutableArray<Uri> Modules { get; init; }
Property Value
ProjectTypeId
Describes the type of project or library.
public ProjectTypeId ProjectTypeId { get; init; }
Property Value
Size
The size (in bytes) of a value of this type.
public override int Size { get; }
Property Value
Remarks
Determines the length of the allocated memory space for a value of this type.
Uri
The root workspace Uri for this project or library.
public Uri Uri { get; init; }
Property Value
Methods
WithModules(IEnumerable<Uri>)
public VBProjectType WithModules(IEnumerable<Uri> modules)
Parameters
modulesIEnumerable<Uri>