문제

나의 딜레마입니다,근본적으로,어떻게 공유하는 열거를 두 개 사용됩니다.

사용자가 문서를 업로드를 통해 프런트 엔드 응용 프로그램을 웹에 있습니다.이 응용 프로그램에서 호출하는 웹 서비스의 최종 응용 프로그램 전달한 문서를니다.백-엔드 응용 프로그램을 저장한 문서와 삽입에서 행 문서 테이블.

문서 유형(7 가능한 문서 유형: 송장, 계약서 등.) 전달된 매개 변수로 웹 서비스 UploadDocument 방법입니다.문제는 어떻게 해야 하는 형식(가능한 값)이 매개 변수의 수?

때문에 당신은 필요한 하드 코딩에서 이러한 값을 모두 응용 프로그램,생각 O.K.을 사용하여 설명하는 문자열(송장, 계약서, WorkOrder, SignedWorkOrder).

그것은 아마 더 나은 방법을 만들기 DocumentTypes 에서 열거 먼저 응용 프로그램,그리고 그것을 재현한에서 두 번째로 응용 프로그램,그리고 다음 해당하는 각 정수 값으로 웹 서비스 사이에요?

도움이 되었습니까?

해결책

내가 말할 수 있습니다.물,하지만 당신 ASP.net 웹 서비스,당신이 할 수 있어야를 추가하는 직접 열거합니다.

면 다음을 사용하여"추가 웹에서"참조하는 클라이언트 응용 프로그램,결과 등을 포함해야 하는 enum

그러나 이것은 정상에서 나의 머리,난데없이 그것은 과거에 하지만,저는 확실히 말할 수 없다.

다른 팁

나는 제안에 대하여 전달하는 사이의 정수,단순히 위한 목적으로의 가독성하고 디버깅할 수 있습니다.말 당신을 통해 귀하의 로그를 볼리의 500 개의 오류에 대한 DocumentType=4.이제 당신은 모 DocumentType 은 4 입니다.는 경우 또는 응용 프로그램 중 하나를 참조 번호를 존재하지 않는 다른에서,아마도 때문에 일치하지 않는 버전이 있습니다.

그것은 좀 더 코드,그리고 그것을 문지르는 정적 입력하는 뇌의 부분이 조금 raw 지만,프로토콜 위에 HTTP 받은 지혜입을 읽을 통해 문자열을 불투명한 열거.

나는 여전히 사용하여 열거를 내부적으로 하지만 기대하는 소비자 전달하는 나에게 이름만 숫자 값이 아닌 자체입니다.

그냥 몇 가지를 설명하기 위해 예를 들어:

public enum DocumentType
{
  Invoice,
  Contract,
  WorkOrder,
  SignedWorkOrder
}

[WebMethod]
public void UploadDocument(string type, byte[] data)
{
  DocumentType docType = (DocumentType)Enum.Parse(typeof(DocumentType), type);
}

습니다.NET,열거 값을(기본값)직렬화된 xml 가진 이름입니다.인스턴스에 대해할 수 있는 여러 가치(플래그음)그것은 공간 사이의 값이다.이 작품이기 때문에 열거가 포함되어 있지 않은 공간,그래서 당신은 값을 얻을 수 있습으로 다시 분할 문자열은(즉,."청구서 계약 SignedWorkOrder 을 사용하여,"lubos 의 예).

을 제어할 수 있습니다 serialization 의의 값에 asp.net 를 사용하여 웹 서비스 XmlEnumAttribute, 나 EnumMember 속성을 사용할 때 WCF.

당신이 당신의 웹 서비스에서.순 페이지/응용 프로그램,당신은에 액세스할 수 있어야 합니다 열거한 후에 추가 귀하의 웹 프로젝트에 대한 참조를 소모하는 서비스입니다.

만약 당신이 작동하지 않습니다.NET 니다.순 비누,당신은 여전히 정의 열거자를 제공하는 두 끝점에 사용하는 WSDL.

<s:simpleType name="MyEnum">    
     <s:restriction base="s:string">
          <s:enumeration value="Wow"/>
          <s:enumeration value="This"/>
          <s:enumeration value="Is"/>
          <s:enumeration value="Really"/>
          <s:enumeration value="Simple"/>
     </s:restriction>
</s:simpleType>

의 최대 WSDL->프록시 생성기 도구를 분석하는 것으로 열거에 상응하는 클라이언트 언어입니다.

거기에 몇 가지 아주 좋은 이유로 사용하지 않는 enums 에는 인터페이스 경계와 같습니다.고려 감히의 게시물 게 확인할 수 있게 되었습니다.

것으로 나타났을 때"를 사용하여 추가 서비스를 참조하"반대로"추가 웹에 참조로부터"VS.net 실제 열거 값을 건너뿐만 아니라면 열거한 이름.이것은 정말로 짜증나는 내가 필요로 모두 지원하 2.0 3.5 클라이언트입니다.최근로 이동 2.0 생성한 웹 서비스에 프록시 코드를 수동으로 추가하면 열거한 값 모든 변경!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top