2011-10-26 3 views
0

나는 enum 속성을 가지고있다. 이 속성에 대한 직렬화 된 XML을 열거 형의 분할 된 낙타 사례 문자열로 지정하고 그 반대의 경우도 마찬가지입니다.직렬화/직렬화 된 데이터를 처리하도록 XmlSerializer에 지시 하시겠습니까?

하나는 ConcatCamelCase이고 다른 하나는 SplitCamelCase입니다. serializer에서 그에 맞게 사용하고 싶습니다. 속성을 사용하여 필드를 꾸미면됩니까?

아니요, 다른 옵션을 사용하면 다른 모든 필드를 엉망으로 만들 필요가 없습니다.

답변

1

당신은 이런 식으로 뭔가를해야 할 것이다 :

public class SomeClass { 
    [XmlIgnore] 
    public MyEnum MyRealProperty {get;set;} 

    [XmlElement("MyRealProperty")] 
    [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)] 
    public string MyProxyProperty 
    { 
     get {return SplitCamelCase(MyRealProperty);} 
     set {MyRealProperty = ConcatCamelCase(value);} 
    } 
} 
+0

공정 소리. 하지만 프록시 속성이 없어도 작동하도록 XML 속성을 재정의 할 수있는 방법이 있습니까? 나는 많은 속성을 가지고 있으며 가능한 경우 모든 속성을위한 프록시를 만들지 않기를 바랍니다. 존 감사합니다. – Shimmy

+0

죄송합니다, 원하는 것을 할 수있는 방법이 없습니다. 수업은 어떻게 작성됩니까? 손으로 또는 생성 된 것인가? 후자라면이 패턴으로 생성하십시오. –

+0

많은 열거 형 필드가 있고 각각에 대해 프록시를 만들어야한다고 생각합니다. 필드에 수행 할 함수를 제공 할 수있는 특성이 있다고 생각했습니다. ['DataAnnotations.CustomValidationAttribute '] (http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute.aspx) :( – Shimmy

-1

XMlSerialization 특성을 사용하여 직렬화되는 모든 항목의 이름을 명시 적으로 설정할 수 있습니다.

[XmlRoot("theNameYouWant")] 

[XmlElement("theNameYouWant")]