Могу ли я использовать библиотеку c # rest для вызова веб-службы? - PullRequest
0 голосов
/ 11 июля 2019

Могу ли я использовать библиотеку C # REST для выполнения этих вызовов веб-службы вместо обнаружения веб-службы, как мы делаем ниже?

бывший веб-сервис, по которому мы звоним

https://trustonline.delawarecpf.com/tows/webservicefk.svc

Проблема в том, что у нас есть файл .cs для каждого веб-сервиса с почти одинаковым кодом для вызова веб-сервиса и получения / добавления / редактирования данных. Разница лишь в том, что веб-сервисы имеют разные ссылки на файлы.

Ex. в каждом файле мы получаем доступ к пользователю как этот

var user = new User();

где пользователь

ServiceReferenceFK.User() // from the FK service reference

или

ServiceReferenceAB.User() // from the AB service reference

Но я бы лучше использовал библиотеку REST для извлечения / редактирования / добавления / удаления данных, чтобы устранить все лишние файлы. И перейти к одному файлу для всех служб.

В настоящее время мы делаем это в обозревателе решений в проекте

enter image description here

затем мы добавляем сервисную ссылку, подобную этой ниже, и нажимаем обнаружить. VS находит URL и получает от нас весь код для использования.

enter image description here

1 Ответ

0 голосов
/ 11 июля 2019

Вы можете использовать абстрактный базовый класс. Чтобы заставить его работать, ваш абстрактный класс должен быть [serializable] или [Datacontract], иначе он не сможет предоставить класс клиенту, например,

[DataContract]
public abstract class MyBase
{
    [DataMember]
    public abstract int DoAdd { get; set; }

    public void MyOtherFunc()
    {
        Console.WriteLine("Done");
    }

}
[DataContract]
public class MyWCF : MyBase
{
    int a;
    [DataMember]
    public override int DoAdd
    {
        get { return a; }
        set { a = value; }
    }
}
...