public override void SetParameterValues(IDictionary <string, string> parameters) { base.SetParameterValues(parameters); if (Compression == null) { Compression = new XmlTextCompressor(new GZipCompressor()); } }
public static void GetXlobSettings(IDictionary <string, string> parameters, out IXmlCompressor compression, out int length) { length = ParseLength(parameters); string compr = null; if (parameters != null) { parameters.TryGetValue("compression", out compr); } if (string.IsNullOrEmpty(compr)) { compression = null; } else if (compr.Equals("gzip", StringComparison.OrdinalIgnoreCase)) { compression = new XmlTextCompressor(GZipCompressor.Instance); } else { System.Type compressor = System.Type.GetType(compr); if (typeof(IXmlCompressor).IsAssignableFrom(compressor)) { compression = (IXmlCompressor)Activator.CreateInstance(compressor); } else if (typeof(IStreamCompressor).IsAssignableFrom(compressor)) { compression = new XmlTextCompressor((IStreamCompressor)Activator.CreateInstance(compressor)); } else { throw new Exception("Unknown compression type."); } } var parameterized = compression as IParameterizedType; if (parameterized != null) { parameterized.SetParameterValues(parameters); } }