我应该使用哪些构造在C#中创建可以在其他第三方软件或程序中使用的共享对象?
示例:
我的程序读取abc.xml,我需要共享从中读取的数据 文件。我有另一个需要读取此共享数据的perl脚本 因此我想知道什么是最好的方法 场景。
感谢。
答案 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或批处理文件将它们联系在一起呢,