2011-07-05 32 views
1

介紹:所有這些異常是真正混亂的代碼, 尤其是I/O處理。尋找一個簡單的csharp的I/O框架庫

我正在尋找一個漂亮的界面來編程, 我可以「保持本地」 - 即可以假定操作將從高級代碼中運行。

例如,如果我想在網絡上發送的消息,我可以將其添加到隊列中,它會通過一些線索,只是這是否發送。 確認等會很好。

在我的節目之一,我實現大部分我自己,(如發送(加密)序列化對象)的穩健性是一個先決條件。 該機制得到確認並在某處發生問題時再次發送。因此,用戶代碼 - 高級代碼不擔心這些細節,並可以專注於主邏輯。 現在,作爲一個圖書館,我會發現它非常有用。

我想知道你是否知道一個成熟的。如果不存在這樣的事情,我會嘗試重構到最小的通用通信庫中。

+0

WCF已經成熟的網絡,但你是否在尋找硬件io? –

+2

這聽起來像你需要一個消息隊列。 – CodingBarfield

+0

感謝您將消息隊列指向我,因此我查看了zeromq。聽起來很有趣,但不清楚,如果這是匹配。 如果你關心點,你可以提供一個解釋和例子消息隊列如何適應這個問題,我會接受它作爲答案。 – kobi7

回答

1

關於網絡, ZeroMQ證明是我一直在尋找的答案。

關於本地io,我還沒有找到它。 我想根據預期的使用情況發生故障。 例如,當我剛剛定義我想要的內容時,在寫入任何內容之前, 已經接收到該行的錯誤(在運行時),說明寫入操作沒有足夠的磁盤空間,或者您沒有讀取權限從這個目錄。 這些是常見的錯誤,它們在系統中是全局的,並且與寫入的實際字節無關。

在實踐中,我設想它作爲在操作系統中的一個服務,IO操作被登記並且接收令牌,並且我當完成通知,並且還可以請求使用令牌進度指示。 如果IO是已知的失敗有(例如,未讀取的目錄)

0

ZeroMQ是用於消息傳遞的東西相當不錯的初始登記會失敗。我不確定它在錯誤方面是否健壯,處理這些事情的例外。您可能仍然需要使用ZeroMQ自行實施它們。我想知道是否有.NET中的IO庫來處理這個問題。

開源解決方案會更好。因爲WCF我覺得太複雜了。