我用 C# 编写了一个 Windows 服务,它在定期读取文件后执行一些功能(一种公共方法)。我可以从另一个 C# 应用程序中使用此功能吗?如果可能,请给出基于.net 2.0 以及.net 3.0 的解决方案
谢谢
我用 C# 编写了一个 Windows 服务,它在定期读取文件后执行一些功能(一种公共方法)。我可以从另一个 C# 应用程序中使用此功能吗?如果可能,请给出基于.net 2.0 以及.net 3.0 的解决方案
谢谢
最简洁的选项是将该功能写入一个单独的程序集 (dll) 中,您可以从服务和第二个 .NET 应用程序中使用该程序集。
您可以引用服务程序集(即使它是一个 exe,至少在 VS2008 中)——但这似乎有点矫枉过正。
如果您想在运行服务的上下文中执行该方法,那么您将需要一些 IPC(可能是 WCF 或套接字)。
只需使用 WCF 公开它并从您的其他应用程序调用它。它们处于不同的进程中,因此您必须使用 IPC
取决于你想重用的方式。
如果要访问正在运行的窗口服务,则通过 WCF 公开功能。您只想使用代码,然后将其放在程序集中并从另一个项目/程序中引用。
我会说 .net 2.0 和 3.0 与后者相同,但由于 .net 2.0 fmk 没有 WCF,如果您仅使用 .net 2.0 或 WCF 作为早期的 Windows 远程处理端点,我建议您使用我说。