首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将参数传递给ServiceHost

如何将参数传递给ServiceHost
EN

Stack Overflow用户
提问于 2013-01-08 08:08:09
回答 1查看 12.5K关注 0票数 7

我正在做以下工作

代码语言:javascript
复制
 //Define the service host
        this._smeediPluginServiceHost = new ServiceHost(typeof(SmeediServiceHost), smeediServiceUri);
        this._smeediPluginServiceHost.AddServiceEndpoint(typeof(ISmeediServiceHost), GetBinding(), smeediServiceUri);
        SetupAndStartWebService(_smeediPluginServiceHost); 


  private void SetupAndStartWebService(ServiceHost serviceHost, ServiceDiscoveryBehavior serviceDiscoveryBehavior = null)
    {
        //Define service behaviours
        ServiceMetadataBehavior serviceMetadataBehavior = new ServiceMetadataBehavior();
        serviceMetadataBehavior.HttpGetEnabled = true;

        //Add the behaviours to the service
        serviceHost.Description.Behaviors.Add(serviceMetadataBehavior);

        if (serviceDiscoveryBehavior != null)
            serviceHost.Description.Behaviors.Add(serviceDiscoveryBehavior);

        serviceHost.Open();
    }  

我需要向Service传递一个参数,但我不知道如何传递。我看过How do I pass values to the constructor on my wcf service?,但还是想不通。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 08:01:07

如果我理解正确的话,您希望将参数传递给服务实现类的构造函数。你可以通过passing an of the service class to the ServiceHost constructor来实现,而不是它的类型。这就是:

代码语言:javascript
复制
// Create the service instance
var instance = new SmeediServiceHost("some parameters");

// Define the service host using the above instance
this._smeediPluginServiceHost = new ServiceHost(instance, smeediServiceUri);

Caution -使用此方法意味着您正在使用服务类的单个实例。如果每个会话或每个请求都需要一个新实例,那么可以考虑使用this answer中描述的ServiceHostFactory

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14206267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档