저는 PreProd와 Prod를위한 두 개의 URL 집합을 가지고 있습니다. 각 URL에는 여러 개의 API 노드가 있습니다.문자열 메서드 이름에서 메서드 호출
이//Prod
private enum Prod
{
precheckorder,
submitresubmit,
creditInquiry,
createupdateorder,
confirmorder,
getorderstatus,
cancelorder,
}
/// <summary>
/// Gets the relative URL.
/// </summary>
/// <param name="u">The u.</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
private static string GetRelativeUrl(Prod u)
{
switch (u)
{
case Prod.precheckorder:
return "https://contesa.tex.com/api/precheckorder";
case Prod.submitresubmit:
return "https://contesa.tex.com/api/submitresubmit";
case Prod.creditInquiry:
return "https://contesa.tex.com/api/creditinquiry";
case Prod.createupdateorder:
return "https://contesa.tex.com/api/createupdateorder";
case Prod.confirmorder:
return "https://contesa.tex.com/api/confirmorder";
case Prod.getorderstatus:
return "https://contesa.tex.com/api/getorderstatus";
case Prod.cancelorder:
return "https://contesa.tex.com/api/cancelorder";
default:
// Handle bad URL, possibly throw
throw new Exception();
}
}
우리는 환경의 이름을 저장하는 환경 변수를 사용하고 사용하는 API 세트 지시 이잖아 대신 하드는 이러한 API 노드를 코딩, 나는 열거이 같은
뭔가를 유지합니다.
이상적으로는 하나의 메소드를 갖고 싶습니다. 내 환경과 API 이름을 전달하고 API URL을 반환합니다.
GettexApiUrlBasedOnEnvironment("Dev", "precheckorder");
및 응답 등의
이뭔가
"https://contoso.tex.com/api/precheckorder"
모든 아이디어/제안이 많이 이해할 수있을 것이다 것입니다. TIA는
당신이하려는 일이 명확하지 않습니다. 메서드를 반환하려는 경우 입력 매개 변수가 열거 형이고 메서드 내에서 논리를 수행하는 오버로드가있는 메서드가 두 개 있습니다 (예 : 'MyMethod (EnumType1 en)'및 'MyMethod (EnumType2 en) '). 또한 Gettex ...라는 단어에서 "Dev"라는 단어를 볼 수는 있지만 질문의 다른 곳에서는 볼 수 없습니다. 릴리스/디버그 모드에서 실행 중인지 여부에 따라 결과를 변경하려고합니까? 그렇다면 '#if DEBUG'를 사용하고 프로그램이로드 될 때 약간의 로직을 넣으십시오. '반사'태그는 무엇입니까? – beeker