저는 몇 년 동안 몇 가지 C# 프로젝트를 작업 해 왔으며 일반적으로 규칙은 프로젝트 유형에서 프로젝트 유형에 이르기까지 일관됩니다. 그러나 WCF Webservice 프로젝트를 시작하면서, 나는 조금 다른 것을 발견하고 있습니다. 들어오는 XML을 스키마에 대해 유효성을 검사해야합니다. 스키마를 저장하기 위해 프로젝트 루트 인 XSD에서 폴더를 생성했습니다. 폴더에 XSD를 참조 할 때 이전 프로젝트에서,이 같은 것을 사용했습니다 다음 XSD 파일에 대한WCF Webservice 응용 프로그램에서 파일을 어떻게 참조합니까?
XmlTextReader textReader = null;
XmlSchemaCollection xSchemaCollection = null;
XmlValidatingReader valReader = null;
string uri = string.Format(@"{0}\{1}", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), XSDPath);
// text reader object
textReader = new XmlTextReader(uri);
xSchemaCollection = new XmlSchemaCollection();
xSchemaCollection.Add(null, textReader);
// XML validator object
valReader = new XmlValidatingReader(strXMLDoc, XmlNodeType.Document, null);
속성은 폴더를 대상으로 항상 복사로 설정됩니다. 일반적으로 XSD에 대한 유효한 경로를 얻었고 모든 것이 잘 진행됩니다. 그러나이 WCF Webservice 프로젝트에서 XSD 파일을 복사하는 경로는 임시 디렉터리이므로 올바른 경로를 얻지 못합니다. xSchemaCollection.Add 메서드가 실패합니다.
현재로서는 XSD 폴더가 WCF 프로젝트에 없습니다. 위의 코드가 현재있는 클래스 라이브러리 프로젝트를 추가했는데 그 위치가 폴더와 파일입니다. 나는 임시 디렉토리 문제를 제거 할 것으로 예상했으나 그렇지 않았다.
내가 잘못하고있는 아이디어가 있습니까? 미리 감사드립니다.
WCF가 통신하는 데 사용하는 XML의 유효성을 검사하려고합니까? WCF를 통해 XML을 전송하고 있습니까? 이 서비스의 목적은 무엇입니까? –
다른 것들 중에서도 오래된 기술을 사용하고 있습니다. 'XmlTextReader()'가 아닌'XmlReader.Create()'를 사용하십시오. 'XmlValidatingReader() '와 동일합니다. –