多年來,我一直在處理幾個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