C# 将控制台应用程序对象共享到自主机WCF服务

C# 将控制台应用程序对象共享到自主机WCF服务,c#,.net,wcf,C#,.net,Wcf,我需要通过wcf服务共享我的应用程序统计信息。我可以自行托管wcf服务,但默认情况下ServiceHost对象构造函数使我无法初始化服务的其他成员变量 样本: public interface IService { //some operations here } public class Service : IService { object myObject; //implementation of IService } myObject是我的控制台应用程序对象(List

我需要通过wcf服务共享我的应用程序统计信息。我可以自行托管wcf服务,但默认情况下ServiceHost对象构造函数使我无法初始化服务的其他成员变量

样本:

public interface IService
{
   //some operations here 
}

public class Service : IService
{
  object myObject;
  //implementation of IService
}

myObject是我的控制台应用程序对象(List),我希望我的服务能够查看它。有什么方法可以在我的WCF服务中引用它吗?

您可以使用此方法在服务实现代码中获取
ServiceHost
实例的句柄:

ServiceHostBase base = OperationContext.Current.Host;

现在,您有了一个指向服务主机的链接—可以读取任何公开可用和可访问的内容(最好不要设置,因为可能有许多服务类实例正在运行)。

您可以使用此方法在服务实现代码中获取
服务主机
实例的句柄:

ServiceHostBase base = OperationContext.Current.Host;

现在您有了一个指向服务主机的链接—任何公共可用和可访问的内容都可以读取(最好不要设置,因为可能有许多服务类实例正在运行).

您可以通过定制自己提供服务实例。

您可以通过定制自己提供服务实例。

我将尝试IInstanceProvider。我需要在app.config文件中添加一些内容吗?链接上的示例使用了一个实现IContractBehaviorAttribute的类IContractBehavior,但它没有显示它是如何实例化的。我像这样托管我的服务:ServiceHost dccaService=newServiceHost(typeof(CreditControl.SOA.SOAP.service));dccaService.Open();注册自定义实例提供程序需要一个
IServiceBehavior
。然后您还可以拥有一个自定义的
服务主机
。下面是演示整个过程的另一个链接:我创建了一个实现IServiceBehavior的类、一个实现IInstanceProvider的类以及一个实现IContractBehaviorAttribute和IContractBehavior的类。创建我的服务将是一样的,就像我张贴在上面。当我浏览dll文件时,我希望我的类实现IServiceBehavior将在SvcConfigEditor.exe的扩展名下可用,但它不是。我做得对吗?我会试试IInstanceProvider。我需要在app.config文件中添加一些内容吗?链接上的示例使用了一个实现IContractBehaviorAttribute的类IContractBehavior,但它没有显示它是如何实例化的。我像这样托管我的服务:ServiceHost dccaService=newServiceHost(typeof(CreditControl.SOA.SOAP.service));dccaService.Open();注册自定义实例提供程序需要一个
IServiceBehavior
。然后您还可以拥有一个自定义的
服务主机
。下面是演示整个过程的另一个链接:我创建了一个实现IServiceBehavior的类、一个实现IInstanceProvider的类以及一个实现IContractBehaviorAttribute和IContractBehavior的类。创建我的服务将是一样的,就像我张贴在上面。当我浏览dll文件时,我希望我的类实现IServiceBehavior将在SvcConfigEditor.exe的扩展名下可用,但它不是。我做得对吗?有没有完整源代码样本的最终解决方案?有没有完整源代码样本的最终解决方案?