/// <summary> /// Initializes a new instance of <see cref="AssemblyDocumentation"/>. /// </summary> /// <param name="assemblySet">The set of all assemblies documentation is being generated for.</param> /// <param name="definition">The definition of the assembly.</param> /// <param name="xmlDocsProvider">The XML documentation provider to use for loading XML documentation comments.</param> /// <param name="logger">The logger to use.</param> internal AssemblyDocumentation(AssemblySetDocumentation assemblySet, AssemblyDefinition definition) { AssemblySet = assemblySet ?? throw new ArgumentNullException(nameof(assemblySet)); Definition = definition ?? throw new ArgumentNullException(nameof(definition)); Name = definition.Name.Name; Version = definition.GetInformationalVersionOrVersion(); m_Types = new Dictionary <TypeId, TypeDocumentation>(); Types = ReadOnlyCollectionAdapter.Create(m_Types.Values); }
/// <summary> /// Initializes a new instance of <see cref="NamespaceDocumentation"/>. /// </summary> /// <param name="assemblySet">The the set of assemblies documentation is being generated for.</param> /// <param name="parentNamespaceDocumentation">The documentation model of the namespace that contains this namespace.</param> /// <param name="namespaceId">The id of the namespace.</param> /// <param name="logger">The logger to use.</param> internal NamespaceDocumentation(AssemblySetDocumentation assemblySet, NamespaceDocumentation?parentNamespaceDocumentation, NamespaceId namespaceId, ILogger logger) { m_AssemblySet = assemblySet ?? throw new ArgumentNullException(nameof(assemblySet)); ParentNamespaceDocumentation = parentNamespaceDocumentation; NamespaceId = namespaceId ?? throw new ArgumentNullException(nameof(namespaceId)); m_Logger = logger ?? throw new ArgumentNullException(nameof(logger)); m_Logger.LogDebug($"Initializing documentation object for namespace '{namespaceId.Name}'"); Types = ReadOnlyCollectionAdapter.Create(m_Types.Values); Namespaces = ReadOnlyCollectionAdapter.Create(m_Namespaces.Values); //TODO: Support XML docs for namespaces }