C#+使用.xsd和.xml文件对Web服务进行编程

时间:2010-09-28 15:55:51

标签: c# xsd

我有一个旧学校ASP(注意:不是ASP.NET)网站,其中有一个名为“listener.asp”的文件。该文件是“web服务api”的接口。由于维护和实施,此文件位于我暂时无法访问的计算机上。但是,我得到了一堆xml文件。这些xml文件以“* Request.xml”和“* Response.xsd”结尾。

我的问题是,我是否可以实现我的代码来通过这些.xml和.xsd文件进行交互而无需点击listener.asp?我知道我不会得到任何真实的数据。但我认为可能有一种方法来构建我的应用程序,直到机器可用。有没有办法做到这一点?

我想我假设有这些.xml和.xsd文件的原因。我认为原因是“定义”请求和响应对象。但我想找出一种编码和测试的方法,而不必依赖于该机器。这有可能与我所获得的一样吗?

谢谢

1 个答案:

答案 0 :(得分: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#对象。