C# Class CodeContractNullability.ExternalAnnotations.CachingExternalAnnotationsResolver

Performs one-time load of files from built-in Resharper External Annotation folders, along with a cached set of per-assembly External Annotations (loaded from [AssemblyName].ExternalAnnotations.xml in assembly folder). The annotation files from this last set typically come from NuGet packages or assembly references. From that set, each per-assembly file is monitored for filesystem changes and flushed accordingly.
Inheritance: IExternalAnnotationsResolver
Show file Open project: bkoelman/ResharperCodeContractNullability

Public Methods

Method Description
EnsureScanned ( ) : void
HasAnnotationForSymbol ( ISymbol symbol, bool appliesToItem, Compilation compilation ) : bool

Private Methods

Method Description
CreateAssemblyAnnotationsFileWatcher ( [ path ) : FileSystemWatcher
CreateAssemblyCacheEntry ( [ path ) : AssemblyCacheEntry
HasAnnotationInGlobalCache ( [ symbol, bool appliesToItem ) : bool
HasAnnotationInSideBySideFile ( [ symbol, bool appliesToItem, [ compilation ) : bool
OldValuesFrom ( [ e ) : FileSystemEventArgs
WatcherOnChanged ( [ sender, [ e ) : void

Method Details

EnsureScanned() public method

public EnsureScanned ( ) : void
return void

HasAnnotationForSymbol() public method

public HasAnnotationForSymbol ( ISymbol symbol, bool appliesToItem, Compilation compilation ) : bool
symbol ISymbol
appliesToItem bool
compilation Compilation
return bool