Udostępnij za pośrednictwem


Wprowadzenie do rozszerzalności

Model aplikacji Windows Communication Foundation (WCF) został zaprojektowany w celu rozwiązania większej części wymagań komunikacyjnych każdej aplikacji rozproszonej. Jednak zawsze istnieją scenariusze, w których domyślny model aplikacji i implementacje dostarczone przez system nie są obsługiwane. Model rozszerzalności WCF jest przeznaczony do obsługi niestandardowych scenariuszy, umożliwiając modyfikowanie zachowania systemu na każdym poziomie, nawet do momentu zastąpienia całego modelu aplikacji. W tym temacie opisano różne obszary rozszerzenia i opisano więcej informacji na temat każdego z nich.

Obszary do rozszerzenia

Możesz rozszerzyć:

  • Środowisko uruchomieniowe aplikacji. Rozszerza to wysyłanie i przetwarzanie komunikatów dla aplikacji. Ten obszar obejmuje również rozszerzenie systemu zabezpieczeń, systemu metadanych, systemu serializacji oraz powiązań i elementów powiązań łączących aplikację z bazowym systemem kanałów.

  • Środowisko uruchomieniowe kanału i kanału. Rozszerza to system, który działa na poziomie komunikatów, zapewniając obsługę protokołu, transportu i kodowania.

  • Środowisko uruchomieniowe hosta. Rozszerza to relację domeny aplikacji hostingu do kanału i środowiska uruchomieniowego aplikacji.

Rozszerzanie środowiska uruchomieniowego aplikacji

W aplikacjach WCF istnieje rozróżnienie między komunikatami przeznaczonymi dla odpowiedniego kanału i komunikatów przeznaczonych dla samej aplikacji. Komunikaty kanału obsługują niektóre funkcje związane z kanałem, takie jak ustanawianie bezpiecznej konwersacji lub ustanawianie niezawodnej sesji. Te komunikaty nie są dostępne dla środowiska uruchomieniowego aplikacji; są przetwarzane przed udziałem warstwy aplikacji.

Komunikaty aplikacji zawierają dane przeznaczone do operacji klienta lub usługi utworzonej przez Ciebie lub klienta. Te komunikaty są dostępne dla systemu rozszerzenia na poziomie aplikacji w postaci komunikatu lub obiektu, w zależności od potrzeb.

Wszystkie komunikaty przechodzą przez system kanałów; tylko komunikaty aplikacji są przekazywane z systemu kanału do aplikacji. Aby utworzyć nowe funkcje na poziomie kanału, należy rozszerzyć system kanałów. Aby utworzyć nowe funkcje na poziomie aplikacji, należy rozszerzyć środowisko uruchomieniowe usługi lub klienta (odpowiednio dyspozytorów i fabryk kanałów). Aby uzyskać więcej informacji na temat rozszerzania środowiska uruchomieniowego aplikacji, zobacz Rozszerzanie elementu ServiceHost i warstwy modelu usługi.

Rozszerzanie zabezpieczeń

Aby utworzyć niestandardowe mechanizmy zabezpieczeń, takie jak tokeny i poświadczenia, należy rozszerzyć system zabezpieczeń. Aby uzyskać więcej informacji, zobacz Rozszerzanie zabezpieczeń.

Rozszerzanie metadanych

Aby uwidocznić metadane w inny sposób niż domyślne, należy rozszerzyć system metadanych. Aby uzyskać więcej informacji, zobacz Rozszerzanie systemu metadanych.

Rozszerzanie serializacji

Aby tworzyć niestandardowe kodery, udostępniać dane zastępcze lub inne prace związane z dostosowywaniem przesyłanych danych, należy rozszerzyć system serializacji. Aby uzyskać więcej informacji, zobacz Rozszerzanie koderów i serializatorów.

Rozszerzanie powiązań

Aby skojarzyć kanały transportu lub protokołu z warstwą aplikacji, należy rozszerzyć system powiązań. Aby uzyskać więcej informacji, zobacz Rozszerzanie powiązań.

Rozszerzanie systemu kanału

Aby utworzyć kanały obsługujące niestandardowe transporty lub funkcje protokołu, zobacz Rozszerzanie warstwy kanału.

Rozszerzanie systemu hostingu usług

Aby zmodyfikować model aplikacji dla całej usługi, należy rozszerzyć System.ServiceModel.ServiceHostBase klasę. Aby uzyskać więcej informacji, zobacz Rozszerzanie elementu ServiceHost i warstwy modelu usługi.

Aby zmodyfikować relację między domeną aplikacji hostingu a hostem usługi, należy rozszerzyć klasę System.ServiceModel.Activation.ServiceHostFactory . Aby uzyskać więcej informacji, zobacz Rozszerzanie hostingu przy użyciu serviceHostFactory.

Zobacz też