C# WCF 프로젝트를 사용하여 RESTful 서비스를 만들고 인터페이스 및 매크로 상수 대체에 대한 질문이 있습니다. 등C# 인터페이스 및 매크로 상수 대체
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(..);
}
과 :
나는 (매우 간단)과 같이 WebGet이 장식의 무리가 있습니다.
과거에는 C를 광범위하게 사용했기 때문에 일반적으로 일반 텍스트 "{a}/{b}/{c}"
에 대한 매크로 상수가 만들어져 어디서나 반복되지 않습니다.
private readonly string
또는 private const string
과 같은 일반적인 C# 대안은 문제가되는 문자열 (문제가되는 문자열)로 인해이 시나리오에서 작동하지 않으며 어떤 경우에도 인터페이스에 구성원이 포함될 수 없습니다.
API의 향후 변경 사항 (예 : {b}
이 {b1}/{b2}
으로 바뀜)을 사용하면 어디에서나 변경 작업을 수행 할 수 있나요?
여기 해결책은 여기에 언급 된 것과 같습니다 : http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/71e8d202-b249-49bb-a85d-b0ef8207463d/하지만 인터페이스의 구현에서 장식 문자열을 수정하기에는 너무 늦었다 고 생각하기 때문에 여기에 해당한다고 생각하지 않습니다.
고맙습니다. 이것이 컴파일 시간에 계산된다는 것을 인식하지 못했습니다. – Varun