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;
 }