Beispiel #1
0
        /// <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));
 }