public void Dispose() { if (_powerShellSupport != null) { _powerShellSupport.Dispose(); _powerShellSupport = null; } }
internal ExchangePowerShellSupport(string configuredExchangeVersion, string exchangeUri, ConnectorMessages messageCatalog) { if (configuredExchangeVersion == null && exchangeUri != null) { LOGGER.TraceEvent(TraceEventType.Warning, CAT_DEFAULT, "No configured Exchange version. As auto-detection is not possible in remote mode, using 2010 as a default."); _exchangeVersion = ExchangeVersion.E2010; } else { _exchangeVersion = GetExchangeServerVersion(configuredExchangeVersion); } IList<string> snapins = new List<string>(); if (exchangeUri == null) { switch(_exchangeVersion) { case ExchangeVersion.E2007: // used for force load of the exchange dll's (untested in current version of the connector!) AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyResolver2007); snapins.Add(Exchange2007SnapIn); break; case ExchangeVersion.E2010: snapins.Add(Exchange2010SnapIn); break; case ExchangeVersion.E2013: snapins.Add(Exchange2013SnapIn); break; default: throw new ArgumentException("Invalid server version: " + _exchangeVersion); } } _exchangeUri = exchangeUri; _messageCatalog = messageCatalog; _powerShellSupport = new PowerShellSupport(snapins, CreateExchangeRunspace, messageCatalog); }
public MyRunspacePool(PowerShellSupport.CreateRunspaceDelegate createRunspaceDelegate) { _createRunspaceDelegate = createRunspaceDelegate; }