/// <summary> /// Loads the endpoints cached on disk. /// </summary> /// <param name="createAlways">if set to <c>true</c> ConfiguredEndpointCollection is always returned, /// even if loading from disk fails</param> /// <param name="overrideConfiguration">if set to <c>true</c> overrides the configuration.</param> /// <returns> /// Colection of configured endpoints from the disk. /// </returns> public ConfiguredEndpointCollection LoadCachedEndpoints(bool createAlways, bool overrideConfiguration) { if (m_clientConfiguration == null) { throw new InvalidOperationException("Only valid for client configurations."); } string filePath = Utils.GetAbsoluteFilePath(m_clientConfiguration.EndpointCacheFilePath, true, false, false, false); if (filePath == null) { filePath = m_clientConfiguration.EndpointCacheFilePath; if (!Utils.IsPathRooted(filePath)) { FileInfo sourceFile = new FileInfo(this.SourceFilePath); filePath = Utils.Format("{0}{1}{2}", sourceFile.DirectoryName, Path.DirectorySeparatorChar, filePath); } } if (!createAlways) { return(ConfiguredEndpointCollection.Load(this, filePath, overrideConfiguration)); } ConfiguredEndpointCollection endpoints = new ConfiguredEndpointCollection(this); try { endpoints = ConfiguredEndpointCollection.Load(this, filePath, overrideConfiguration); } catch (Exception e) { Utils.Trace(e, "Could not load configuration from file: {0}", filePath); } finally { string localFilePath = Utils.GetAbsoluteFilePath(m_clientConfiguration.EndpointCacheFilePath, true, false, true, true); if (localFilePath != filePath) { endpoints.Save(localFilePath); } } return(endpoints); }