コード例 #1
0
ファイル: PathGlobber.cs プロジェクト: zhuyue1314/Pash
        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));
        }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        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);
        }