2009-11-18 7 views
1

아마도 어리석은 질문 일지 모르지만 프로그래밍의 전체적인 "get-and-set-property"에 상당히 익숙합니다.void에서 XmlDocument 로의 암시 적 변환

코드의이 부분에서 계속 컴파일 오류가 발생합니다.

private string _File = "Session.xml"; 

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     return _Doc.LoadXml(_File); 
    } 
} 

private XmlElement XmlRoot 
{ 
    get 
    { 
     return XmlDoc.DocumentElement; 
    } 
} 

어째서? 나는 암묵적인 변환을 보지 못한다고 스스로에게 설명 할 수 없다 ...

답변

1

이 코드는 문제입니다 파일 경로의 XmlDocument 인스턴스가 지정되었습니다.

은 단순히이 당신의 속성을 변경하여 문제를 해결하려면 :

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
} 
+0

오 소년, 즉 너무 분명했다 ... 젠장 -.-를 –

2

_Doc.LoadXml (_File); XmlDocument가 아니라 void를 반환합니다. 에 코드를 변경 : 당신은 void의 반환 타입을 가진 메소드에서 값을 반환하려는

return _Doc.LoadXml(_File); 

:

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
} 
4

문제는이 라인입니다.

대신을 시도하는 방법 대신 채우기, 어떤 값을 반환하지 않는 한,

return _Doc.LoadXml(_File); 

LoadXml 방법은 void의 반환 형식이 있습니다

private XmlDocument XmlDoc 
{ 
    get 
    { 
     XmlDocument _Doc = new XmlDocument(); 
     _Doc.LoadXml(_File); 
     return _Doc; 
    } 
}