Наиболее эффективные способы выбора WebService на основе параметра

В настоящее время у меня есть ASP.NET WebService1.asmx .

Для использования Sql Server используется SqlConnection .

Теперь я создал WebServiceDB2.asmx , который использует OdbcConnection .

Я буду передавать параметр с переднего конца, чтобы определить, какую службу я использую.

Так, например, в коде, который стоит за этим, я хотел бы сделать регулярный вызов веб-службы,

protected void deleteButton_Click(object sender, EventArgs e)
    {
        WebService1 ws = new WebService1();
        ws.deleteTerm(term); 
    }

Мой вопрос заключается в более эффективном способе реализации опции вызова DB2 , чем это -

protected void deleteButton_Click(object sender, EventArgs e)
    {
        if(parameter == "SQL")
        { 
             WebService1 ws = new WebService1();
             ws.deleteTerm(term);
        }
        if(parameter == "DB2")
        { 
             WebServiceDB2 ws = new WebServiceDB2();
             ws.deleteTerm(term);
        } 
    }

Поскольку это удвоит мой код, и я регулярно делаю вызовы веб-сервисов на всех страницах сайта.

0
Единственное, что SQL для SQL Server и DB2 варьируется, поэтому я застрял либо с одним веб-сервисом с различными методами, либо с двумя веб-сервисами с различными вызовами.
добавлено автор Ebikeneser, источник
В сторону: при создании нового сервиса, почему бы не использовать WCF? Службы ASMX устарели.
добавлено автор Grant Thomas, источник
Если службы будут предоставлять одни и те же операции, не лучше ли сохранить только одну услугу, которая передает этот параметр полностью на уровень операций с базой данных, где будет использоваться соответствующее соединение?
добавлено автор Alex Filipovici, источник

1 ответы

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

public void DeleteTerm(string term, string Server)
{
   if(Server == "SQL")
    { 
         WebService1 ws = new WebService1();
         ws.deleteTerm(term);
    }
    if(Server == "DB2")
    { 
         WebServiceDB2 ws = new WebServiceDB2();
         ws.deleteTerm(term);
    } 
}

Затем вы можете назвать это так:

protected void deleteButton_Click(object sender, EventArgs e)
{
    DeleteTerm(term,paramter);//where parameter is your class level variable. 
}
0
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)