using 블록 (Close() 호출 없음)을 사용하여 XmlWriter를 만드는 것으로 충분합니까? 아니면 try/finally 블록을 사용하고 마침내 Close()를 호출하는 것이 더 낫습니까?XmlWriter : using 블록을 사용하는 경우 Close()가 필요합니까?
답변
using 블록은 IDisposable을 구현하는 모든 개체에서 Dispose()를 호출하는 try/finally 블록의 바로 가기입니다.
스트림 및 스트림 작성기의 경우 Dispose()는 일반적으로 수동으로 Close()를 호출합니다. using
블록이 당신을 위해 XmlWriter를 폐쇄 처리합니다,
protected virtual void Dispose(bool disposing)
{
if (this.WriteState != WriteState.Closed)
{
try
{
this.Close();
}
catch
{
}
}
}
그래서 짧은 대답은 '예 : 반사판을 사용하여, 여기에 폐기의 XmlWriter를 방법입니다.
아니요, 별도로 호출 할 필요가 없습니다. 바로 사용 블록이있는 것입니다.
실행이 사용중인 블록을 종료하면 XmlWriter가 처리되고 내부에서 XmlWriter.Dispose
은 XmlWriter.Close
을 호출합니다.
하지만 ... XmltTextWriter.Close에 리플렉터() 표시 :
경우 (this.closeOutput) { this.stream.Close(); } this.Stream = null;
closeOutput 플래그는 settings.CloseOutput으로 설정되며 false 일 수 있습니다.
XmlTextWriter에서 "using"식을 사용할 때 핸들러가 사용 가능합니까?
이제 빈 가상 함수를 보여줍니다 : public virtual void Close() {} – amuliar
- 1. validates_length_of를 사용하는 경우 validates_presence_of가 필요합니까?
- 2. GAE에서 try/except 블록을 사용하는 경우
- 3. Reflection.Emit을 사용하여 "using (x) {...}"블록을 방출 하시겠습니까?
- 4. Android - LocationManager.requestLocationUpdates를 사용하는 경우 WakeLock이 필요합니까?
- 5. Qt xmlWriter/xmlReader
- 6. 범위가 지정된 개체에서 여전히 실행중인 스레드가있는 using() 블록을 종료하는 C#
- 7. XmlWriter - 속성 읽기 (빠른 질문)
- 8. Close가 명시 적으로 호출되지 않았습니다.
- 9. using using a class
- 10. XmlSerializer를 사용하여 파일 만들기 : FileStream 또는 XmlWriter?
- 11. XmlDocument 대 XmlWriter
- 12. XMLWriter 구문 문제
- 13. XMLWriter() 빈 문자열 바꾸기
- 14. 블록을 사용하는 SIGSEGV의 원인은 무엇입니까?
- 15. Mac에서 블록을 사용하는 코어 애니메이션?
- 16. 보안 웹 서비스를 사용하는 경우 SSL 인증서가 필요합니까?
- 17. 암호화를 사용하는 경우 왜 액세스 제어 정책이 필요합니까?
- 18. iPhone SDK - 키 체인 액세스를 사용하는 경우 CCATS가 필요합니까?
- 19. [Java] 1 연결 만 사용하는 경우 연결 풀이 필요합니까?
- 20. C#에서 using 문을 사용하는 것이 가능합니까?
- 21. C# .NET XMLWriter/Reader problem
- 22. 디버거에서 두 블록을 실행하는 조건 인 경우
- 23. 양식에 close가 두 번 호출되면 문제가 발생합니까?
- 24. C# 메서드로 IronRuby 블록을 사용하는 방법
- 25. PHP XMLWriter 기능에 대한 리소스가 있습니까?
- 26. 메모리 스트림을 닫거나 "using"using memory stream
- 27. C# XMLWriter + 금지 "/" "<" "<"문자
- 28. using System.Reflection
- 29. Ruby에서 블록을 사용하는 함수를 테스트하는 방법입니까?
- 30. TPrinter의 로컬 인스턴스를 사용하는 경우
그리고 이것은 실제로 내가보고있는 코드입니다. 모두 '닫기'라고 부릅니다. –