2010-09-28 72 views
0

我有一個名爲「listener.asp」的文件的舊式ASP(注意:不是ASP.NET)網站。該文件是「Web服務api」的接口。由於維護和實施,該文件位於一段時間內無法訪問的計算機上。但是,我得到了一堆xml文件。這些XML文件以「* Request.xml」和「* Response.xsd」結尾。C#+使用.xsd和.xml文件對Web服務進行編程

我的問題是,我可以實現我的代碼通過這些.xml和.xsd文件進行交互,而無需點擊listener.asp?我知道我不會得到任何真實的數據。但是我認爲在機器可用之前可能有一種方法來構建我的應用程序。有沒有辦法做到這一點?

我想我假設有這些.xml和.xsd文件的原因。我認爲這是爲了「定義」請求和響應對象。但我想找出一種編碼和測試方法,而不必依靠那臺機器。這與我所得到的一樣可能嗎?

謝謝

回答

0

最好的方法是定義一個抽象類,它提供給你的「Web服務API」的訪問。然後創建兩個派生類,一個與真實Web服務一起工作,另一個從文件中檢索假響應。

abstract class LegacyWebService 
{ 
    public abstract int Foo(); 
} 

class RealLegacyWebService : LegacyWebService 
{ 
    public override int Foo() 
    { 
     return (int)XDocument.Load("http://www.example.com/foo").Root; 
    } 
} 

class FakeLegacyWebService : LegacyWebService 
{ 
    public override int Foo() 
    { 
     return (int)XDocument.Load(@"C:\Users\Me\Desktop\foo.xml").Root; 
    } 
} 

你也應該能夠從您的XSD文件創建C#類和使用XML序列化的XML響應從Web服務或文件到C#對象轉換。