Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一个WCF服务、多个端点、每个端点的不同上下文_C#_Wcf_Autofac_Multi Tenant - Fatal编程技术网

C# 一个WCF服务、多个端点、每个端点的不同上下文

C# 一个WCF服务、多个端点、每个端点的不同上下文,c#,wcf,autofac,multi-tenant,C#,Wcf,Autofac,Multi Tenant,我正在编写一个多租户WCF应用程序。我有一个“通用”服务类,负责执行一些业务逻辑。我希望使用Autofac配置WCF,这样每个端点将使用自定义配置部分接收不同的配置参数,例如: <system.serviceModel> <services> <service name="MyApiService"> <host> <baseAddresses> <add baseAdd

我正在编写一个多租户WCF应用程序。我有一个“通用”服务类,负责执行一些业务逻辑。我希望使用Autofac配置WCF,这样每个端点将使用自定义配置部分接收不同的配置参数,例如:

<system.serviceModel>
  <services>
    <service name="MyApiService">
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:80000" />
        </baseAddresses>
      </host>
      <endpoint name="Tenant1" address="tenant1" binding="basicHttpBinding" contract="IMyApiService" />
      <endpoint name="Tenant2" address="tenant2" binding="basicHttpBinding" contract="IMyApiService" />
    </service>
  </services>
</system.serviceModel>
<apiConfigurationSection>
  <service name="Tenant1" wcfServiceName="MyApiService" param1="value1" param2="value2" />
  <service name="Tenant2" wcfServiceName="MyApiService" param1="value3" param2="value4" />
</apiConfigurationSection>

我希望在调用匹配服务(通过URL)时,将参数
param1
param
作为上下文注入


您能为我提供一些解决方案吗?

如果您的服务根据其公开的方式进行不同的操作,那么我认为您应该对您的服务进行两次包装。将服务逻辑分开,创建两个信封,其行为符合
param1
param2
的需要,并在信封内调用服务。