public static TrackersHolder Create(Compilation compilation, INetFrameworkVersionProvider versionProvider) { var netFrameworkVersion = versionProvider.GetDotNetFrameworkVersion(compilation); var constructorIsSafe = ConstructorIsSafe(netFrameworkVersion); var xmlDocumentTracker = new CSharpObjectInitializationTracker( // we do not expect any constant values for XmlResolver isAllowedConstantValue: constantValue => false, trackedTypes: XmlDocumentTrackedTypes, isTrackedPropertyName: propertyName => "XmlResolver" == propertyName, isAllowedObject: (symbol, _, __) => IsAllowedObject(symbol), constructorIsSafe: constructorIsSafe ); var xmlTextReaderTracker = new CSharpObjectInitializationTracker( isAllowedConstantValue: IsAllowedValueForXmlTextReader, trackedTypes: ImmutableArray.Create(KnownType.System_Xml_XmlTextReader), isTrackedPropertyName: XmlTextReaderTrackedProperties.Contains, isAllowedObject: (symbol, _, __) => IsAllowedObject(symbol), constructorIsSafe: constructorIsSafe ); return(new TrackersHolder(xmlDocumentTracker, xmlTextReaderTracker)); }
internal /*for testing*/ XmlExternalEntityShouldNotBeParsed(INetFrameworkVersionProvider netFrameworkVersionProvider) { VersionProvider = netFrameworkVersionProvider; }