C # + Программирование на веб-сервисе только с файлами .xsd и .xml - PullRequest
0 голосов
/ 28 сентября 2010

У меня есть старый школьный веб-сайт ASP (примечание: не ASP.NET), в котором есть файл «listener.asp». Этот файл является интерфейсом к «API веб-сервиса». Этот файл находится на компьютере, к которому я некоторое время не могу получить доступ из-за обслуживания и внедрения. Тем не менее, мне дали кучу XML-файлов. Эти xml-файлы заканчиваются на «* Request.xml» и «* Response.xsd».

У меня вопрос: могу ли я реализовать свой код для взаимодействия через эти файлы .xml и .xsd без необходимости нажатия на listener.asp? Я знаю, что я не получу никаких реальных данных. Но я подумал, что может быть способ создать мое приложение, пока машина не станет доступной. Есть ли способ сделать это?

Я предполагаю, что есть причина для этих .xml и .xsd файлов. Я думаю, что причина в том, чтобы «определить» объекты запроса и ответа. Но я хотел бы найти способ кодировать и тестировать, не полагаясь на эту машину. Возможно ли это с тем, что мне дали?

Спасибо

1 Ответ

0 голосов
/ 28 сентября 2010

Лучшим способом было бы определить абстрактный класс, который обеспечивает доступ к вашему "API веб-сервиса". Затем создайте два производных класса, один из которых работает с реальным веб-сервисом, а другой - получает поддельные ответы из файлов.

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;
    }
}

Вы также должны иметь возможность создавать классы C # из ваших файлов xsd и использовать сериализацию XML для преобразования ответов XML из веб-службы или файла в объекты C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...