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.
Zalecana akcja
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
- NetHttpBinding(String)
- NetTcpBinding(String)
- System.ServiceModel.ChannelFactory.ApplyConfiguration(String)
- System.ServiceModel.ChannelFactory.InitializeEndpoint(String, EndpointAddress)
- ChannelFactory<TChannel>(String)
- ChannelFactory<TChannel>(String, EndpointAddress)
- DuplexChannelFactory<TChannel>(InstanceContext, String)
- DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress)
- DuplexClientBase<TChannel>(InstanceContext, String)
- DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress)
- DuplexClientBase<TChannel>(InstanceContext, String, String)