/// <exception cref="IOException"/> protected override Metadata GetMetadataImpl() { if (lazyMetadata == null) { Interlocked.CompareExchange(ref lazyMetadata, MetadataCache.GetOrCreateFromFile(FullPath, this.Properties.Kind), null); } return(lazyMetadata); }
internal VisualStudioMetadataReferenceManager(IServiceProvider serviceProvider, ITemporaryStorageService temporaryStorageService) { _metadataCache = new MetadataCache(); _runtimeDirectories = GetRuntimeDirectories(); _xmlMemberIndexService = (IVsXMLMemberIndexService)serviceProvider.GetService(typeof(SVsXMLMemberIndexService)); _smartOpenScopeService = (IVsSmartOpenScope)serviceProvider.GetService(typeof(SVsSmartOpenScope)); _fileChangeService = (IVsFileChangeEx)serviceProvider.GetService(typeof(SVsFileChangeEx)); _temporaryStorageService = temporaryStorageService; Debug.Assert(_xmlMemberIndexService != null); Debug.Assert(_smartOpenScopeService != null); Debug.Assert(_fileChangeService != null); Debug.Assert(temporaryStorageService != null); }