保留更多请求的网址SwaggerWcf

时间:2017-05-17 11:54:15

标签: c# wcf config swagger swagger-wcf

我的WCF服务在本地托管如下:
localhost/service.svc
它在服务器上托管如下:
servername/extra/service.svc
在发出请求时,SwaggerWcf使用基本路径并添加configered元素: localhost/user/parameter
但它应该是:
localhost/extra/user/parameter
所以我需要WCF不仅使用主机名,而且还需要更多的URL 我可以将它添加到SwaggerWcf配置中,该配置为user,可以是extra/user。但随后它又不再在当地工作了。

我尝试添加一个可以静态读取配置属性的Config类:

using System.Configuration;

namespace Project
{
    public static class Config
    {
        public static readonly string SwaggerWcfRequestPath = ConfigurationManager.AppSettings["SwaggerWcf.RequestPath"] ?? "/user";
    }
}

但是当我尝试使用this时:

[SwaggerWcf(Config.SwaggerWcfRequestPath)]
public class Service: IService

它仍会产生相同的错误:

Error   46  An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type.

如何动态完成?然后对于不同的环境可能会有所不同。

1 个答案:

答案 0 :(得分:1)

目前无法做到这一点 但我今天晚些时候会看一下

可能最好的方法是允许使用Web.config

覆盖它
  <configSections>
    <section name="swaggerwcf" type="SwaggerWcf.Configuration.SwaggerWcfSection, SwaggerWcf"/>
  </configSections>
  <swaggerwcf>
    <settings>
      <setting name="Host" value="www.msampleservice.com"/>
      <setting name="BasePath" value="/myserviceapi"/>
    </settings>
  </swaggerwcf>