2010-10-01 73 views
2

從哪裏開始....C#IFilter在解決方案中安裝不正確?

我繼承,搜索從以前的編程文件中的字符串(即沒有documenation)一個應用程序使用它的命名空間EPocalipse.IFilter。它有幾個問題,其中第一個是VS Project缺少FilterReader.cs,FilterLoader.cs,以及其他我認爲是EPocalipse IFilters(基於我的研究)所必需的。第二個是應用程序(當構建時)在運行時掛在ReadToEnd()上。

我發現這個線程在這裏: TextReader Read and ReadToEnd hangs without throwing exception

這是真棒......除了沒有發佈溶液給出=( 因爲我有這個問題和其他人,我想我會開始一個新的線程,因爲我首先要確保IFilter的安裝正確,但是項目仍然存在,但仍然掛在某些文件上(通常是MS Excel)

例如,如果我嘗試在Visual Studio中爲「我的定義」實例化FilterReader,它只是簡單地顯示了標籤「FilterReader [from metadata]」。所以我假設FilterReader.cs文件只是缺失(它在項目解決方案中無處可用探險家),這也可能是懸掛問題的原因?

任何幫助,非常感謝。

SK

回答

1

有關主題的詳細信息,看看this article [CodeProject上]

至於掛的問題,它不能被輕易解決。基本上,有兩種可能的解決方案:

  1. 應用無限循環檢查,就像您找到的線程中的檢查。但是,一些非常複雜的文檔可能仍然掛在IFilter內部,並且您無能爲力(IFilters是COM組件,通常是封閉源代碼)。
  2. 使您的提取成爲雙線程:一個線程監視提取過程並在超時時停止文檔提取,另一個線程執行實際提取。如果您選擇此路徑,請記住,您可能會遇到訪問衝突異常,因爲EPocalypse實施沒有針對多線程訪問ifilters的COM保護。
+0

感謝您的鏈接,幫助我找回解決方案。至於懸掛,我發現特定的文件(例如啓用宏)會導致它掛起。所以我改變了代碼:using(EPocalipse.IFilter.FilterReader filterReader = new EPocalipse.IFilter.FilterReader(file))to using(var reader = new FilterReader(file))我不得不使用「using Eclipse.IndexingService.COMTypeDef; 「和「使用Eclipse.IndexingService.models;」看起來,Eclipse.IndexingService COM確實有和Ifilter一樣的問題,它的工作很棒! – scryptKiddy 2010-12-16 18:36:44

相關問題