/// <summary> /// Attempts to load a dictionary using the URL to the FSA file and the /// expected metadata extension. /// </summary> /// <param name="dictURL">The URL pointing to the dictionary file (<c>*.dict</c>).</param> /// <returns>An instantiated dictionary.</returns> /// <exception cref="IOException">If an I/O error occurs.</exception> public static Dictionary Read(Uri dictURL) { Uri expectedMetadataURL; try { string external = dictURL.AbsoluteUri; expectedMetadataURL = new Uri(DictionaryMetadata.GetExpectedMetadataFileName(external)); } catch (UriFormatException e) { throw new IOException("Couldn't construct relative feature map URL for: " + dictURL, e); } var fsaRequest = (HttpWebRequest)WebRequest.Create(dictURL); var expectedMetadataRequest = (HttpWebRequest)WebRequest.Create(expectedMetadataURL); using (var fsaResponse = fsaRequest.GetResponse()) using (var expectedMetadataResponse = expectedMetadataRequest.GetResponse()) using (var fsaStream = fsaResponse.GetResponseStream()) using (var metadataStream = expectedMetadataResponse.GetResponseStream()) return(Read(fsaStream, metadataStream)); }
/// <summary> /// Reads both the metadata and fsa into a <see cref="Dictionary"/>. /// </summary> private Dictionary ReadDictionary(string dictionaryName) { using (var fsaStream = this.GetType().getResourceAsStream(dictionaryName)) using (var metadataStream = this.GetType().getResourceAsStream(DictionaryMetadata.GetExpectedMetadataFileName(dictionaryName))) return(Dictionary.Read(fsaStream, metadataStream)); }