我正在尝试构建一个Windows服务,它将激活我们服务器上的某个进程。
我还添加了一个wcf主机,通过UI程序和wcf客户端来传达服务。
但是我将数据从服务获取到客户端有一些问题,因此数据类是服务类。当我接到电话时,不再使用数据创建课程。
我试图给他wcf单例实例,但它不是在开头创建的。
一些例子:
partial class ProcessLoaderService : ServiceBase
{
private InnerChannelHost _host;
public ProcessLoaderService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
try
{
_host = new InnerChannelHost(componentUID);
}
catch (Exception e)
{
ErrorManager.WriteException("Process loader has failed to initialize.",e);
Stop();
}
}
protected override void OnStop()
{
// Add code here to perform any tear-down necessary to stop your service.
}
}
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple ,
InstanceContextMode = InstanceContextMode.Single,
UseSynchronizationContext = false)]
class ProcessLoader : IInnerChannelService
{
public void Run(string processLoaderUID)
{
// some data saved in members
}
public void GetComponents(ref ProcessContract[] processContracts)
{
// get the stored data
processContracts = ConvertProcessToContract();
}
}
我可以将类实现为单例,并在不同类中调用单例方法的接口。还有其他想法吗?