2017-09-04 1 views
0

에 예외를 발생 캔트 :SQLXML, 나는이 코드를 쓴 잘못된 XML

SqlXml s = new SqlXml(new MemoryStream(new UnicodeEncoding().GetBytes("asd"))); 

을하지만 아무튼 왜 t은 나에게 예외 ... 왜 포기?

는 내가하려고하면 :

SqlXml s = new SqlXml(new MemoryStream(new UnicodeEncoding().GetBytes("asd"))); 
String g=s.Value; 

내가 값 할당에 예외가있다. 어디서 잘못 되었나요?

미리 감사드립니다!

+0

이것은 sql-server 또는 sql과 어떤 관련이 있습니까? – GuidoG

+0

내가 SQL 서버에서 DLL (CLR)을 사용하기 때문에 ... – elle0087

+0

던져 질 수있는 수천 가지 예외가 있습니다. 어느 것을 얻었습니까? – GuidoG

답변

1

이 형식에 대해 단순히 생성자를 호출해도 스트림에서 아무 것도 수행하지 않으므로 (code 참조). 인스턴스로 "무언가"를 할 때만 실제로 데이터/스트림을 읽으려고 시도하고 순서대로 예외를 던집니다.

Value -property는 전달 된 스트림을 실제로 읽을 수있게하는 것입니다. 다른 것들은 documentation을 확인하십시오.

그래서이 클래스를 사용하여 스트림에 유효한 XML이 있는지 확인하려면 이미 수행 한 것처럼 수행하십시오. SqlXml.Value 속성을 호출하십시오 (사용하지 않더라도 좋은 측정을 위해 문자열에 할당 할 수 있습니다). 그것이 throw되면 이미 관찰 된 것처럼 XML이 유효하지 않습니다.