그래서 WCF 서비스 참조와 이에 상응하는 Reference.cs
프록시 클래스가 생성 된 상속 된 프로젝트가 있습니다. 나는이를 확인할 수프록시 클래스에 모든 것을 추가하지 않는 WCF에 대한 서비스 참조 옵션 추가
[DataContract]
public enum ColorAction
{
[EnumMember]
NONE = 0,
[EnumMember]
GREEN = 1,
[EnumMember]
RED = 2,
}
A의 wsdl
보고 노출 :
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="MyRecord.ColorAction", Namespace="http://schemas.datacontract.org/2004/07/DocumentsDataAccess.DataClasses")]
public enum ColorAction : int {
[System.Runtime.Serialization.EnumMemberAttribute()]
NONE = 0,
[System.Runtime.Serialization.EnumMemberAttribute()]
GREEN = 1,
[System.Runtime.Serialization.EnumMemberAttribute()]
RED = 2,
}
는 해당 WCF 코드 다음 기존 프록시 클래스에서 나는 enum
(고화질)를 볼 수 있습니다 브라우저에서 enum
유형이 나열된 것을 볼 수 있습니다. 그러나
, 때 중 하나를 '새로 고침'또는 다른 방법과 열거의 많은과 함께이 enum
이 누락, (삭제하고 다시 추가하여 새 기준으로) '서비스 참조 추가'. 프록시 클래스의 다운로드 및 생성은 성공하므로 오류가 발생하지 않습니다.
Add Service Reference
대화 상자에서 '고급'설정을 모두 조정하려고했지만 아무런 차이가없는 것처럼 보입니다. 실제 결과는 기존 코드가 누락 된 다른 코드 중 enums
을 호출하고 사용할 수 있기를 기대하기 때문에 서비스 참조를 새로 고치거나 다시 추가 한 후에 코드가 컴파일되지 않습니다.
나는 이미 Reuse types in all referenced assemblies
의 선택을 취소했지만 결과가 변경되지 않았습니다. 내가 궁금하네요
,이 Add Service Reference
마법사를 사용하지 에서 내가 찾고 있어요 프록시 클래스를 생성하고 대신 SvcUtil.exe
를 사용하는 직접 가서 원래 사람을 했습니까? 나는 혼자 사용하기 전에 그것을 사용했지만 궁금한 점은 내가 사용하고자하는 것은 모든 것을 생성 할 것임을 의미합니다. WCF 서비스가 노출되고 있습니까? 을 얻기 위해 필요한 스위치는 무엇입니까 서비스가 공개적으로 제공됩니까? (참고로 .NET 4.0을 목표로하고 있습니다.)
열거 형 멤버가 EnumMemberAttribute로 표시되어 있습니까? 어떤 종류의 응용 프로그램이 고객입니까? – lex87
업데이트 된 코드를 참조하십시오. '[EnumMember]'속성이 존재합니다. – atconway