2012-04-29 3 views
1

XmlSerialization을 사용하여 개체를 XML로 serialize 할 때 기본적으로 일반 변수를 무시할 수 있습니까?XmlSerialization - 기본적으로 변수를 무시하십시오.

나는 변수가 있습니다

class SomeClass 
{ 
    private bool trueOrFalse = false; 

    public bool TrueOrFalse 
    { 
     get { return trueOrFalse; } 
     set { trueOrFalse = value; } 
    } 
} 

이 직렬화, 나는 XML 파일 각각에 대해 하나에 두 개의 "요소"를 얻을 수를 -하지만 그들은 같은 것. 따라서 XML 파일을 깨끗하게 만들려면 속성을 어떻게 든 포함하고 XmlIgnore를 사용하지 않고도 기본으로 사용할 수 있습니다. C 번호의 버전에 따라

+0

출력 XML을 게시하십시오. 내가 아는 한 – RajN

+2

. XmlSerializer는 필드가 아닌 속성 만 직렬화합니다. 심지어 개인 필드 인 경우 최악의 경우도 직렬화합니다. –

답변

1

죄송합니다, 내 실수였다. 클래스가 구현되고 모든 필드가 private으로 설정된 인터페이스가 있습니다. 행운을 빌어 인터페이스를 구현하는 특정 객체를 테스트하여 propertyname + propertyvalue와 field 및 fieldvalue를 작성한 public의 필드를 설정했습니다.

필드는 비공개이어야합니다.

0

,이 같은 속성을 정의 할 수 있습니다 : @Jaime 올리바 레스는, 접두사하려고 만 클래스의 public 멤버를 직렬화 XML 직렬화에 말했듯이

public class SomeClass 
{ 
    public bool TrueOrFalse{ get; set; }  
} 
-1

당신의 이

[Serializable] 
class SomeClass 
{ 
//does not persist the member in your serialization process 
[NonSerialized] 
private bool trueOrFalse = false; 

public bool TrueOrFalse 
{ 
    get { return trueOrFalse; } 
    set { trueOrFalse = value; } 
} 

같은 필드}

+0

XmlSerialization 개체에 일반 클래스 변수가 포함되어서는 안된다고 말할 수있는 방법이 있습니까? – Deukalion

+0

-1 : XML Serializer에서는'[Serializable]'과'[NonSerialized]'를 사용하지 않습니다. –

관련 문제