我即将编写一个小型C#WPF服务,该服务引用XML文件进行配置。我已经编写了WPF接口应用程序,它创建并维护服务将读取的XML。很多代码已经进入了界面使用的类,我希望重用它们,而只维护一个版本的代码。
维持两个主要'的最佳做法是什么? Visual Studio中的入口点?一个用于应用程序,另一个用于服务。是否可以混合使用WPF表单和服务项目类型?
如何在将服务注册为Windows服务之前测试并运行该服务?
答案 0 :(得分:1)
如果我得到了这个,你有一个UI项目,并且你想在一个单独的Windows服务项目中重用代码。
通常,这可以通过将公共共享代码移动到一个名为 Commons 或 Core 的单独项目中来完成。这是您需要进行单元测试的。最后,将UI和Windows服务项目中的引用添加到此共享库中。
/root ... /src /app /Core /Presentation (ref to Core) /Service (ref to Core) /test /Core.Test (ref to Core)
答案 1 :(得分:0)
修改您的Main,使其具有不同的调试配置行为,并将TestApp调用到MyService的公共部分:
static void Main()
{
#if DEBUG
TestApp testApp = new TestApp();
testApp.Run();
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new MyService()
};
ServiceBase.Run(ServicesToRun);
#endif
}
然后,您可以通过调试器中的TestApp驱动服务逻辑,而无需注册实际服务。