繁体   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