У меня есть служба WCF, которую мне нужно локализовать для нескольких разных культур, в основном, с сообщениями об ошибках и ответами на разных языках.Вместо того, чтобы полагаться на анализ чего-либо из заголовка запроса, я склоняюсь к предоставлению различных конечных точек для каждой из культур поддержки.Например, я хотел бы иметь разные URL-адреса в соответствии с:
http://server/mycompany-rest/v1.0/service.svc
http://server/mycompany-rest/v1.0/service.svc/fr
http://server/mycompany-rest/v1.0/service.svc/cn
Я думаю, чтобы этот подход был осуществим, мне нужно было бы иметь возможность настроить его в моем файле web.config в соответствии с:
<system.serviceModel>
<services>
<service name="MyCompany.Service.Rest.SomeService">
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<endpoint address="" binding="webHttpBinding" behaviorConfiguration="WebBehavior" contract="MyCompany.Service.Rest.ISomeService"/>
<endpoint address="fr" binding="webHttpBinding" behaviorConfiguration="WebBehaviorFrench" contract="MyCompany.Service.Rest.ISomeService"/>
<endpoint address="cn" binding="webHttpBinding" behaviorConfiguration="WebBehaviorChinese" contract="MyCompany.Service.Rest.ISomeService"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp/>
</behavior>
<behavior name="WebBehaviorFrench">
<webHttp/>
<culture value="fr" />
</behavior>
<behavior name="WebBehaviorChinese">
<webHttp/>
<culture value="zh-cn" />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Я понимаю, что нет элемента культуры для поведения конечной точки, но будет ли такой подход осуществимым с пользовательским поведением?Или в качестве альтернативы есть лучший способ сделать это?