string GetProviderPathFromDriveQualifiedPath(string path, ProviderRuntime runtime, out ProviderInfo providerInfo, out PSDriveInfo drive) { var idx = path.IndexOf(":"); var driveName = path.Substring(0, idx); // TODO: validate drive name? drive = _sessionState.Drive.Get(driveName); providerInfo = drive.Provider; path = path.Substring(idx + 1).TrimStart(PathIntrinsics.CorrectSlash, PathIntrinsics.WrongSlash); return(Path.Combine(providerInfo.CreateInstance(), drive.Root, path, runtime)); }
public IGentleProvider GetProvider(string providerName, string connectionString, string schemaName) { if (providerName == null) { return(GetProvider()); // use default provider } else { Check.Verify(providers.ContainsKey(providerName), Error.UnknownProvider, providerName); ProviderInfo pi = (ProviderInfo)providers[providerName]; IGentleProvider provider = pi.CreateInstance(connectionString, schemaName); return(provider); } }
private CmdletProvider AddProvider(ProviderInfo providerInfo) { CmdletProvider provider = providerInfo.CreateInstance(); provider.Start(providerInfo, new ProviderRuntime(_executionContext)); provider.SetProviderInfo(providerInfo); // Cache the Provider's Info if (!_providers.ContainsKey(providerInfo.Name)) { _providers.Add(providerInfo.Name, new List <ProviderInfo>()); } _providers[providerInfo.Name].Add(providerInfo); return(provider); }