/// <summary> /// Gets XmlResolver - default or custom, with user credentials or not. /// </summary> /// <param name="credentials">User credentials</param> /// <param name="options">Parsed command line options</param> public static XmlResolver GetXmlResolver(NetworkCredential credentials, NXsltOptions options, bool prohibitDTD) { XmlResolver resolver; Type resolverType; if (options.ResolverTypeName != null) { //Custom resolver try { resolverType = TypeUtils.FindType(options, options.ResolverTypeName); } catch (Exception e) { throw new NXsltException(NXsltStrings.ErrorCreateResolver, options.ResolverTypeName, e.Message); } if (!typeof(XmlResolver).IsAssignableFrom(resolverType)) { //Type is not XmlResolver throw new NXsltException(NXsltStrings.ErrorTypeNotXmlResolver, options.ResolverTypeName); } try { resolver = (XmlResolver)Activator.CreateInstance(resolverType); } catch (Exception e) { throw new NXsltException(NXsltStrings.ErrorCreateResolver, options.ResolverTypeName, e.Message); } } else { if (prohibitDTD) { resolver = new XmlUrlResolver(); } else { resolver = new DTDAllowingResolver(); } } //Set credentials if any if (credentials != null) { resolver.Credentials = credentials; } return resolver; }