public IInstaller GetInstaller(IReadOnlyDictionary<string, object> initParams)
{
var inst = new IisInstaller();
if (initParams == null)
initParams = new Dictionary<string, object>();
// Required params
if (!initParams.ContainsKey(WEB_SITE_REF.Name))
throw new KeyNotFoundException($"missing required parameter [{WEB_SITE_REF.Name}]");
inst.WebSiteRef = (string)initParams[WEB_SITE_REF.Name];
// Optional params
if (initParams.ContainsKey(BINDING_ADDRESS.Name))
inst.BindingAddress = (string)initParams[BINDING_ADDRESS.Name];
if (initParams.ContainsKey(BINDING_PORT.Name))
inst.BindingPort = (int)((long)initParams[BINDING_PORT.Name]);
if (initParams.ContainsKey(BINDING_HOST.Name))
inst.BindingHost = (string)initParams[BINDING_HOST.Name];
if (initParams.ContainsKey(BINDING_HOST_REQUIRED.Name))
inst.BindingHostRequired = (bool)initParams[BINDING_HOST_REQUIRED.Name];
if (initParams.ContainsKey(FORCE.Name))
inst.Force = (bool)initParams[FORCE.Name];
return inst;
}