我正在使用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”。我该怎么办?
答案 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并选择不带过时属性的构造函数