Udostępnij za pośrednictwem


Usuwanie interfejsów API programu WCF za pomocą parametru configurationName

Interfejsy API programu WCF, które akceptują configurationName parametr lub endpointConfigurationName parametr, zostały usunięte w programie WCF 8. Te interfejsy API były wcześniej używane w programie .NET Framework do ładowania parametrów konfiguracji klienta, takich jak Binding konfiguracja i EndpointAddress szczegóły.

Wprowadzona wersja

Klient WCF 8.0 (ogólna dostępność)

Poprzednie zachowanie

Usunięte interfejsy API zostały wcześniej pominięte z sugestii funkcji IntelliSense, jednak projekty, które używały ich pomyślnie skompilowane. Użycie dowolnego z usuniętych interfejsów API spowodowało, że PlatformNotSupportedException w czasie wykonywania wystąpił błąd.

Nowe zachowanie

Interfejsy API, których dotyczy problem, już nie istnieją. Uaktualnienie do programu WCF 8 i ponowne skompilowania projektu zakończy się niepowodzeniem.

Typ zmiany powodującej niezgodność

Ta zmiana może mieć wpływ na zgodność źródła.

Przyczyna wprowadzenia zmiany

Interfejsy API, których dotyczy problem, nigdy nie zostały zaimplementowane na platformie .NET, a wszystkie wywołania tych interfejsów API wcześniej spowodowały wyjątek czasu wykonywania. W ten sposób podjęto decyzję o ich całkowitej usunięciu.

Usuń dowolne użycie interfejsów API, których dotyczy problem.

Jeśli używasz klienta WCF wygenerowanego przez svcutil narzędzie z zestawu .NET Framework SDK, wygenerowany klient będzie miał konstruktory wywołujące konstruktory klasy bazowej, które zostały usunięte. Klasa bazowa będzie mieć wartość ClientBase<TChannel> lub DuplexClientBase<TChannel>. Wygenerowane konstruktory były bezużyteczne na platformie .NET, ponieważ spowodowały zgłoszenie PlatformNotSupportedException .

  • Jeśli używasz wielowersyjnych programów .NET Framework i .NET i nadal używasz tych wygenerowanych konstruktorów na platformie .NET Framework, musisz warunkowo skompilować ich użycie.
  • Jeśli nie używasz tych konstruktorów, możesz je usunąć z wygenerowanego kodu. Alternatywnie rozważ ponowne wygenerowanie klienta przy użyciu polecenia dotnet-svcutil.

Dotyczy interfejsów API