/// <summary> /// Implement <see cref="IConfigurationData.GetAdapterConfig"/> /// </summary> /// <param name="adapterName">The adapter name</param> /// <returns>Returns the abstract adapter config data</returns> public AdapterConfig GetAdapterConfig(string adapterName) { AdapterConfig adapter; // Gets target adapter type. string type = this.GetAdapterAttribute(adapterName, "type", DefaultSchemaInstance ); // Create proxy for PowerShell script type adapter if (type.Equals("powershell", StringComparison.CurrentCultureIgnoreCase)) { string psdir = this.GetAdapterAttribute(adapterName, "scriptdir", ""); adapter = new PowerShellAdapterConfig(adapterName, psdir); } // Create instance for dot net type adapter. else if (type.Equals("managed", StringComparison.CurrentCultureIgnoreCase)) { string adapterTypeName = this.GetAdapterAttribute(adapterName, "adaptertype", ""); string disablevalidationstring = this.TryGetAdapterAttribute(adapterName, "disablevalidation", ""); bool disablevalidation = false; if (!String.IsNullOrEmpty(disablevalidationstring)) { Boolean.TryParse(disablevalidationstring, out disablevalidation); } adapter = new ManagedAdapterConfig(adapterName, adapterTypeName, disablevalidation); } else { throw new ArgumentException(String.Format("Unsupported adapter type: {0}", type)); } return(adapter); }
/// <summary> /// Implement <see cref="IConfigurationData.GetAdapterConfig"/> /// </summary> /// <param name="adapterName">The adapter name</param> /// <returns>Returns the abstract adapter config data</returns> public AdapterConfig GetAdapterConfig(string adapterName) { AdapterConfig adapter; // Gets target adapter type. string type = this.GetAdapterAttribute(adapterName, "type", DefaultSchemaInstance ); // Create proxy for default type adapter. if (type.Equals("interactive", StringComparison.CurrentCultureIgnoreCase)) { adapter = new InteractiveAdapterConfig(adapterName); } // Create proxy for command script type adapter. else if (type.Equals("script", StringComparison.CurrentCultureIgnoreCase)) { string scriptdir = this.GetAdapterAttribute(adapterName, "scriptdir", ""); adapter = new ScriptAdapterConfig(adapterName, scriptdir); } // Create proxy for PowerShell script type adapter else if (type.Equals("powershell", StringComparison.CurrentCultureIgnoreCase)) { string psdir = this.GetAdapterAttribute(adapterName, "scriptdir", ""); adapter = new PowerShellAdapterConfig(adapterName, psdir); } // Create proxy for PowerShell wrapper adapter else if (type.Equals("pswrapper", StringComparison.CurrentCultureIgnoreCase)) { string psfile = this.GetAdapterAttribute(adapterName, "scriptfile", ""); adapter = new PsWrapperAdapterConfig(adapterName, psfile); } // Create instance for dot net type adapter. else if (type.Equals("managed", StringComparison.CurrentCultureIgnoreCase)) { string adapterTypeName = this.GetAdapterAttribute(adapterName, "adaptertype", ""); string disablevalidationstring = this.TryGetAdapterAttribute(adapterName, "disablevalidation", ""); bool disablevalidation = false; if (!String.IsNullOrEmpty(disablevalidationstring)) { Boolean.TryParse(disablevalidationstring, out disablevalidation); } adapter = new ManagedAdapterConfig(adapterName, adapterTypeName, disablevalidation); } // Create instance for rpc type adapter. else if (type.Equals("rpc", StringComparison.CurrentCultureIgnoreCase)) { string validationSwitch = this.TryGetAdapterAttribute(adapterName, "autovalidate", ""); string callingConventionString = this.TryGetAdapterAttribute(adapterName, "callingconvention", ""); string charsetString = this.TryGetAdapterAttribute(adapterName, "charset", ""); bool autoValidate = true; if (!String.IsNullOrEmpty(validationSwitch)) { autoValidate = Boolean.Parse(validationSwitch); } //since the specified value has been validated by schema already, no need to re-check if the value is defined in Enum. CallingConvention callingConvention = CallingConvention.Winapi; //by default if (!String.IsNullOrEmpty(callingConventionString)) { callingConvention = (CallingConvention)Enum.Parse(typeof(CallingConvention), callingConventionString, true); } CharSet charset = CharSet.Auto; //by default if (!String.IsNullOrEmpty(charsetString)) { charset = (CharSet)Enum.Parse(typeof(CharSet), charsetString, true); } adapter = new RpcAdapterConfig(adapterName, type, autoValidate, callingConvention, charset); } else { adapter = new CustomAdapterConfig(adapterName, type); } return adapter; }