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

时间:2014-06-02 10:12:16

标签: c# .net shared-objects

我应该使用哪些构造在C#中创建可以在其他第三方软件或程序中使用的共享对象?

示例:

  

我的程序读取abc.xml,我需要共享从中读取的数据   文件。我有另一个需要读取此共享数据的perl脚本   因此我想知道什么是最好的方法   场景。

感谢。

3 个答案:

答案 0 :(得分:1)

要跨应用程序序列化访问,您可以使用named mutex进行查看。我不确定您是否可以访问Perl中的那些,但您当然可以从多个.NET应用程序中执行此操作。

答案 1 :(得分:1)

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

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

如果文件发生变化,您需要更新反序列化的表示并通知您感兴趣的各方。您可以查看FileSystemWatcher类。

但是,应该不鼓励使用私有数据存储区的这种应用程序集成。将这些数据专用于一个应用程序是一种更好的做法,并使用使用Web服务的显式API进行应用程序间通信。

答案 2 :(得分:0)

我可能在这里遗漏了一些东西。

但是,FILE本身不是一个可以跨程序访问的共享资源吗? 如果perl脚本需要该文件,为什么不将它作为perl脚本的一部分读取?

在.net中加载它有什么好处?

我知道这不是你问的问题,但我不明白你为什么要做你正在做的事。

如果您想获得企业,为什么不使用消息队列?或者编写perl脚本可以查询的.net服务?

如果你不能用一种语言做你想做的一切而又不想弄清楚,为什么不使用powershell或批处理文件将它们联系在一起呢,