[英]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.