多年来,我一直在处理几个C#项目,并且通常从项目类型到项目类型的规则是一致的。但是启动了一个WCF Webservice项目,我发现情况有点不同。我必须将传入的XML验证为模式。我已经创建了一个脱离项目根目录XSD的文件夹来存储模式。在以前的项目中,一个文件夹中引用的XSD的时候,我用这样的:如何在WCF Web服务应用程序中引用文件?
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文件的属性设置为始终复制到目标文件夹。通常情况下,我得到一个有效的XSD路径,事情进展得很好。但是在这个WCF Webservice项目中,XSD文件复制到的路径是一个临时目录,并且我没有得到有效的路径。 xSchemaCollection.Add方法失败。
顺便说一句,此时XSD文件夹不在WCF项目中。我添加了一个类库项目(上面的代码当前驻留在其中),这就是文件夹和文件的位置。我预计这会消除临时目录问题,但事实并非如此。
任何想法我做错了什么?提前致谢。
您是否试图验证WCF用于通信的XML?你是否通过WCF发送XML?这项服务的目的是什么? – 2012-01-27 03:12:01
其中,您使用的是旧技术。使用'XmlReader.Create()',而不是'new XmlTextReader()'。和'XmlValidatingReader()一样' – 2012-01-27 08:06:06