Zaciągasz WSDLa i masz dostęp do wszystkich klas i metod. Potem coś takiego:
ElektronicznyNadawca Poczta = new ElektronicznyNadawca();
System.Net.NetworkCredential c = new System.Net.NetworkCredential();
c.UserName = userName
c.Password = password
System.Net.CredentialCache cc = new System.Net.CredentialCache();
cc.Add(new Uri("https://e-nadawca.poczta-polska.pl/websrv/en.wsdl"), "Basic", c);
Poczta.Credentials = cc;
I działają nie tylko tylko testowe ale wszystkie.
Witam. Mam problem z tym powyższym kodem (który jest taki jak w dokumentacji). Używam Visual Studio 2017.
Zaciągnąłem najnowszy serwis WSDL do serwisu o nazwie ServicePost i mam taką funkcję:
static void Main(string[] args)
{
ServicePost.ElektronicznyNadawca tEN = new ServicePost.ElektronicznyNadawca(); // 1
System.Net.NetworkCredential c = new System.Net.NetworkCredential();
c.UserName = "user";
c.Password = "pass";
System.Net.CredentialCache cc = new System.Net.CredentialCache();
cc.Add(new Uri("https://e-nadawca.poczta-polska.pl/websrv/en.wsdl"), "Basic", c);
tEN.Credentials = cc; // 7
string test = tEN.hello("test"); // 8
}
linijka 1: nie może utworzyć obiektu klasy ElektronicznyNadawca gdyż jest to interfejs
linijka 7: w interfejsie ElektronicznyNadawca nie ma pola Credentials
linijka 8: najpierw wyświetla błąd XmlSerializera (przytoczony w pierwszym poście), znalazłem rozwiązanie:
dodanie do pliku Reference.svcmap linijki
<Wrapped>true</Wrapped>
i opcja "Update Service reference"
problem z XmlSerializerem znika za to pojawia się ze zmienionymi argumentami funkcji
hello ma taką postać
Testowa2.ServicePost.helloResponse1 hello(Testowa2.ServicePost.helloRequest request);
i nie wiem co z tym zrobić.
Wszelkie podpowiedzi mile widziane.
Pozdrawiam
Artur