我有一个 Web 服务类,框架的其余部分依赖它来获取其数据,但是 Web 服务类需要根据其所处的环境具有不同的方法属性。例如...
[SoapDocumentMethodAttribute("https://example",...)]
public string Test()
{
//doSomething
}
看到那个“https://示例 https://example“?这需要根据环境进行更改。据我所知,您无法使该字符串在运行时动态化,它必须以这种方式进行编译。所以我试图获取它,以便我为该 Web 服务拥有多个 CS 文件其中硬编码了不同的属性 URL,MSBuild 在预编译时交换它们。因此,我有一个用于测试的基础“Service.cs”,用于生产环境的“Service.cs.生产”,等等。
- 这是最好的方法吗?还是我错过了一些可以让一个 CS 自行处理环境的东西?
- 为了保持具有相同的类名并且 IntelliSense 不认为事情有歧义,我弄乱了文件扩展名(“Service.cs”与“Service.cs.Production”)。这是唯一的方法吗?
- 考虑到以上所有内容都可以,并且我正在针对“Production”配置进行编译,它可以编译 Service.cs.Production代替Service.cs 一切顺利吗?
Thanks!
你能使用条件注释吗?
#if TESTING
[SoapDocumentMethodAttribute(something)]
#else
[SoapDocumentMethodAttribute(someotherthing)]
#endif
对于您的测试配置,您将定义常量:
<DefineConstants>TESTING</DefineConstants>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)