NHibernate.Lob.Parameters.GetXlobSettings C# (CSharp) Method

GetXlobSettings() static private method

static private GetXlobSettings ( string>.IDictionary parameters, IXmlCompressor &compression ) : void
parameters string>.IDictionary
compression IXmlCompressor
return void
		internal static void GetXlobSettings(IDictionary<string, string> parameters, out IXmlCompressor compression)
		{
			string compr = parameters == null ? null : parameters["compression"];
			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)System.Activator.CreateInstance(compressor);
				else if (typeof(IStreamCompressor).IsAssignableFrom(compressor))
					compression = new XmlTextCompressor((IStreamCompressor)System.Activator.CreateInstance(compressor));
				else
					throw new Exception("Unknown compression type.");
			}
			IParameterizedType parameterized = compression as IParameterizedType;
			if (parameterized != null) parameterized.SetParameterValues(parameters);
		}
	}