示例#1
0
        private AttributeCollection(ITypeSymbolProvider symbolProvider, TypeSymbolLocatorCache locatorCache, ISymbol sourceSymbol)
        {
            var compilation = (sourceSymbol.ContainingAssembly as ISourceAssemblySymbol)?.Compilation ?? symbolProvider.Source.DeclaringCompilation;

            _symbolLocator   = locatorCache.GetLocator(compilation);
            ContainingSymbol = sourceSymbol;
            _attributes      = sourceSymbol.GetAttributes();
            (AttributeLocations, Attributes) = GetAttributeLocations();
        }
示例#2
0
 public static AttributeCollection?CreateCollection(ITypeSymbolProvider provider, TypeSymbolLocatorCache locatorCache, ISymbol sourceSymbol)
 {
     if (!sourceSymbol.Locations.All(x => x.IsInSource))
     {
         return(null);
     }
     return(new AttributeCollection(provider, locatorCache, sourceSymbol));
 }