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