簡體   English   中英

C#中的共享對象,可以供其他程序使用

[英]shared object in C# which can used by other program

我應該使用什么結構在C#中創建一個可以在其他第三方軟件或程序中使用的共享庫?

例:

我的程序讀取abc.xml,我需要共享從該文件讀取的數據。 我還有另一個perl腳本,需要讀取此共享數據,因此我想知道在這種情況下最好的方法是什么。

謝謝。

為了序列化跨應用程序的訪問,您可以使用命名的互斥鎖 我不確定是否可以從Perl中訪問它們,但是可以從多個.NET應用程序中進行訪問。

您需要以非阻塞模式在C#和Perl中打開文件。 在C#中,您可以使用:

new FileStream(logfileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

如果文件更改,則需要更新反序列化的表示形式,並將更改通知您的相關方。 您可以為此查看FileSystemWatcher類。

但是,不建議使用私有數據存儲進行這種應用程序集成。 更好的做法是將此類數據視為一個應用程序專用,並使用使用web服務的顯式API(例如,應用程序間通信)。

我可能在這里錯過了一些東西。

但是FILE本身不是共享的資源,可以跨程序訪問嗎? 如果perl腳本需要文件,為什么不將其作為perl腳本的一部分讀取呢?

通過將其加載到.net中可以獲得什么好處?

我知道這不是您要的內容,但我不明白您為什么要這樣做。

如果您想變得有企業精神,為什么不使用消息隊列? 還是編寫一個Perl腳本可以查詢的.net服務?

如果您無法用一種語言來完成您想做的一切,又不想弄清楚,為什么不使用powershell或批處理文件將它們捆綁在一起,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM