internal PEAssemblySymbol(PEAssembly assembly, DocumentationProvider documentationProvider, bool isLinked, MetadataImportOptions importOptions) { Debug.Assert(assembly != null); Debug.Assert(documentationProvider != null); _assembly = assembly; _documentationProvider = documentationProvider; var modules = new ModuleSymbol[assembly.Modules.Length]; for (int i = 0; i < assembly.Modules.Length; i++) { modules[i] = new PEModuleSymbol(this, assembly.Modules[i], importOptions, i); } _modules = modules.AsImmutableOrNull(); _isLinked = isLinked; }
public SerializedMetadataReference( MetadataReferenceProperties properties, string fullPath, Metadata metadata, ImmutableArray<ITemporaryStreamStorage> storagesOpt, DocumentationProvider initialDocumentation) : base(properties, fullPath, initialDocumentation) { // TODO: doc comment provider is a bit wierd. _metadata = metadata; _storagesOpt = storagesOpt; _provider = initialDocumentation; }
/// <summary> /// Creates a reference to a single-module assembly or a standalone module stored in memory /// from a hex-encoded byte stream representing a gzipped assembly image. /// </summary> /// <param name="image"> /// A string containing a hex-encoded byte stream representing a gzipped assembly image. /// Hex digits are case-insensitive and can be separated by spaces or newlines. /// Cannot be null. /// </param> /// <param name="properties">Reference properties (extern aliases, type embedding, <see cref="MetadataImageKind"/>).</param> /// <param name="documentation">Provides XML documentation for symbol found in the reference.</param> /// <param name="filePath">Optional path that describes the location of the metadata. The file doesn't need to exist on disk. The path is opaque to the compiler.</param> protected internal PortableExecutableReference CreateMetadataReferenceFromHexGZipImage( string image, MetadataReferenceProperties properties = default(MetadataReferenceProperties), DocumentationProvider documentation = null, string filePath = null) { if (image == null) { throw new ArgumentNullException(nameof(image)); } using (var compressed = new MemoryStream(SoapHexBinary.Parse(image).Value)) using (var gzipStream = new GZipStream(compressed, CompressionMode.Decompress)) using (var uncompressed = new MemoryStream()) { gzipStream.CopyTo(uncompressed); uncompressed.Position = 0; return MetadataReference.CreateFromStream(uncompressed, properties, documentation, filePath); } }
public MissingMetadataReference( MetadataReferenceProperties properties, string fullPath, DocumentationProvider initialDocumentation) : base(properties, fullPath, initialDocumentation) { // TODO: doc comment provider is a bit wierd. _provider = initialDocumentation; }
/// <summary> /// Creates a reference to a single-module assembly or a standalone module stored in memory /// from a hex-encoded byte stream representing a gzipped assembly image. /// </summary> /// <param name="image"> /// A string containing a hex-encoded byte stream representing a gzipped assembly image. /// Hex digits are case-insensitive and can be separated by spaces or newlines. /// Cannot be null. /// </param> /// <param name="properties">Reference properties (extern aliases, type embedding, <see cref="MetadataImageKind"/>).</param> /// <param name="documentation">Provides XML documentation for symbol found in the reference.</param> /// <param name="filePath">Optional path that describes the location of the metadata. The file doesn't need to exist on disk. The path is opaque to the compiler.</param> protected internal PortableExecutableReference CreateMetadataReferenceFromHexGZipImage( string image, MetadataReferenceProperties properties = default(MetadataReferenceProperties), DocumentationProvider documentation = null, string filePath = null) { return null; }