2011-08-05 7 views
1

전선에 보내기 전에 객체 직렬화에 문제가 있습니다. 기본적으로 내 객체를 기대하고 WCF 열거 형 속성을 사용하는 XMLSerialization이 무시되었습니다.

다음은
<verb>Show</verb> 

로서의 무시 속성이

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "3.0.4506.2152")] 
[System.SerializableAttribute()] 
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.starstandards.org/webservices/2005/10/transport")] 
public enum OperationEnumeratedType 
{ 

    /// <remarks/> 
    /// 
    and, 

    /// <remarks/> 
    /// 
    or, 

    /// <remarks/> 
    /// 
    not, 
} 


     /// <remarks/> 
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)] 
    public OperationEnumeratedType operation 
    { 
     get 
     { 
      return this.operationField; 
     } 
     set 
     { 
      this.operationField = value; 
     } 
    } 

아래는 클라이언트 프록시 코드를입니다 그러나

<verb operation="and">Show</verb> 

로 직렬화 나는이 객체를 어떻게 생성하고 있는가?

    verb = new CriteriaLogicStringType 
        { 
         operation = OperationEnumeratedType.and, 
         Value = "Show" 
        } 

작업 속성을 직렬화 된 XML로 표시하려면 어떻게 알 수 있습니까?

덕분에이 같은

답변

1

당신은 EnumMemberAttribute으로 OperationEnumeratedType 열거의 멤버를 장식한다 :

[DataContract] 
public enum OperationEnumeratedType 
{ 
    [EnumMember] 
    And, 
    [EnumMember] 
    Or, 
    [EnumMember] 
    Not 
} 

관련 리소스 :

+0

빠른 답장을 보내 주셔서 감사합니다. 불행히도 나는 XmlSerialization을 사용하는 생성 된 프록시 클래스를 사용하도록 제한되어있다. XmlSerialization을 사용하여 이것을 수행하는 방법을 알고 있습니까? – daehaai

+0

@activebiz 서비스에 요청을 어떻게 보냅니 까? –

+0

ClientBase를 사용하는 WCF 프록시를 사용합니다. 위의 시도와 동일한 결과를 보았습니다. 그것은 내가 XmlSerilizer를 사용하여 나머지 프록시를 가지고 있기 때문입니까? – daehaai