我正在使用C#WCF項目創建一個RESTful服務,並且有關於接口和宏常量替代品的問題。C#接口和宏常量替代品
我有一堆WebGet修飾,這看起來像這樣(高度簡化)的:
public interface IRestSerivce
{
[OperationContract]
[WebGet(UriTemplate = "{a}/{b}/{c}/someName01?param={val}")]
string Handler01(..);
[OperationContract]
[WebGet(UriTemplate = "{a}/{b}/{c}/someName02?param={val}")]
string Handler02(..);
[OperationContract]
[WebGet(UriTemplate = "{a}/{b}/{c}/someName03?param={val}")]
string Handler03(..);
}
等等。
在過去廣泛使用C之後,我通常會爲普通文本"{a}/{b}/{c}"
創建一個宏常量,這樣它就不會在任何地方重複。
通常的C#替代品,如private readonly string
或private const string
不會在這種情況下,由於同類問題(它是在一個飾),在任何情況下,接口不能有成員串的工作。
有什麼辦法可以使API的未來變化(比如{b}
變成{b1}/{b2}
)不需要我在任何地方進行更改?
我到目前爲止發現的解決方案看起來像這裏提到的:http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/71e8d202-b249-49bb-a85d-b0ef8207463d/但我不認爲這適用於此,因爲我相信在接口的實現中修改裝飾字符串爲時已晚。
謝謝。不知道這是在編譯時計算的。 – Varun 2013-04-30 01:55:07