我想用.NET(c#)编写一个程序,这将运行内存(一个无形/隐藏的窗体应用程序)。从另一个.net和VB6应用程序代码我需要访问存储在该程序中的数据。我怎样才能做到这一点?
有什么想法吗?我可以使.net程序作为COM可见,使其可以从VB代码访问。但每当我创建一个这个程序的实例来从代码中访问时,我就会丢失存储在这里的数据。
我如何克服这个问题?
答案 0 :(得分:6)
我可以使.net程序作为COM可见,使其可以从VB代码访问
这并不是你所希望的。在运行时工作正常,但您实际上将EXE作为进程内服务器加载。就像一个DLL。 CLR并不关注.NET程序集的文件扩展名,只关注显示名称。一切似乎都很好,但当然你无法获得正确的数据。
在.NET中创建进程外服务器是一件非常尴尬的事情。仅支持COM +托管,您需要从ServicedComponent派生可见类。操作方法MSDN文章start here。
请考虑使用标准的.NET进程互操作支持。从套接字,命名管道或WCF中挑选。