Я звоню Sharepoint 2007 Lists
веб-службы, как это:Как избежать повторного использования методов для одинаковых классов?
class ListUpdater
{
public void update(ListWS.Lists listService,XmlNode xNode)
{
listService.UpdateListItems("myListName", xNode);
}
}
Поскольку мы мигрируют в Sharepoint 2013, мне нужно изменить этот метод:
class ListUpdater
{
public void update(ListWS_2013QA.Lists listService,XmlNode xNode)
{
listService.UpdateListItems("myListName", xNode);
}
}
где ListWS_2013QA
является веб-сервис по новому URL-адресу.
Тем не менее, я не хочу изменять это везде, когда объявляется экземпляр веб-службы, особенно если мне придется несколько раз менять веб-службу на всю жизнь приложения. Я думал о том, интерфейс IListService
так, что я мог бы переписать метод как:
class ListUpdater
{
public void update(IListService listService,XmlNode xNode)
{
listService.UpdateListItems("myListName", xNode);
}
}
Но тогда для каждой версии веб-службы, я должен реализовать интерфейс с оберткой, которая реализует каждый метод Lists
, что я использую в своем коде, например, так:
class ListsWrapper_2013QA:IListService
{
ListWS_2013QA.Lists listService;
public XmlNode DoSomething(string listName, XmlNode listProperties, XmlNode newFields, XmlNode updateFields, XmlNode deleteFields, string listVersion)
{
return listService.UpdateList(listName, listProperties, newFields, updateFields, deleteFields, listVersion);
}
public XmlNode UpdateListItems(string listName, XmlNode updates)
{
return listService.UpdateListItems(listName, updates);
}
}
есть ли способ, что я могу воспользоваться тем, что ListWS.Lists
и ListWS_2013QA
уже имеют одни и те же методы, так что я не должен написать обширную оболочку класс каждый раз, когда я хочу использовать услугу Lists
другой URL?
Итак, где именно вы получаете сообщение об ошибке в своем заголовке в своем коде? – juharr
@steve, название было из другого вопроса, который я разрешил перед публикацией, и я забыл изменить его, когда я разместил эту проблему. Сейчас я изменю его. – sigil
@juharr, см. Мой ответ на комментарий Стива. – sigil