NHunspell拼写检查中的错误

时间:2010-04-22 15:54:16

标签: c#

我正在使用NHunspell来检查拼写。我添加了NHunspell.dll作为我的asp.net页面的参考。我添加了名称空间System.NHunspell。 我面临的问题与IDisposible有关。 我把下载的NHunspell代码放在按钮事件中。

protected void Button1_Click(object sender,EventArgs e)         {

        using (Hunspell hunspell = new Hunspell("en_us.aff", "en_us.dic"))
        {
            bool correct = hunspell.Spell("Recommendation");
            var suggestions = hunspell.Suggest("Recommendatio");
            foreach (string suggestion in suggestions)
            {
                Console.WriteLine("Suggestion is: " + suggestion);
            }
        }

        // Hyphen
        using (Hyphen hyphen = new Hyphen("hyph_en_us.dic"))
        {
            var hyphenated = hyphen.Hyphenate("Recommendation");
        }


*  using (MyThes thes = new MyThes("th_en_us_new.idx", "th_en_us_new.dat"))
        {
            using (Hunspell hunspell = new Hunspell("en_us.aff", "en_us.dic"))
            {
                ThesResult tr = thes.Lookup("cars", hunspell);
                foreach (ThesMeaning meaning in tr.Meanings)
                {
                    Console.WriteLine("  Meaning: " + meaning.Description);
                    foreach (string synonym in meaning.Synonyms)
                    {
                        Console.WriteLine("    Synonym: " + synonym);

                    }
                }
            }


        }

上面显示的*是错误行。错误是: “using语句中使用的类型必须可以隐式转换为'System.IDisposable'”。

此行还有一条警告:“'NHunspell.MyThes.MyThes(string,string)'已过时:'不再需要idx文件,MyThes完全在内存中工作'”;

任何人都可以帮我纠正这个???

好的,我将该行更改为MyThes thes = new MyThes(“th_en_us_new.dat”);虫子不见了。

但是有一个例外“未找到AFF文件:E:\ programfiles \ visual studio \ Common7 \ IDE \ en_us.aff”。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您是否尝试将该行更改为:

MyThes thes = new MyThes("th_en_us_new.dat");

您是否在C:\驱动器上搜索了en_us.aff文件?在原始的压缩下载的NHunspell中,你应该找到这个文件。您可能只需将该文件复制到E:\ programfiles \ visual studio \ Common7 \ IDE \目录即可。

答案 1 :(得分:0)

如果using不支持MyThes,请不要使用IDisposable。对于Obsolete - 按MyThes上的F12并选择不带过时属性的构造函数