Introduktion till utökningsbarhet
WCF-programmodellen (Windows Communication Foundation) är utformad för att lösa större delen av kommunikationskraven för alla distribuerade program. Men det finns alltid scenarier som standardprogrammodellen och implementeringar som tillhandahålls av systemet inte stöder. WCF-utökningsmodellen är avsedd att stödja anpassade scenarier genom att du kan ändra systemets beteende på alla nivåer, även när du ersätter hela programmodellen. Det här avsnittet beskriver de olika tilläggsområdena och pekar på mer information om var och en.
Områden som ska utökas
Du kan utöka:
Programkörningen. Detta utökar sändningen och bearbetningen av meddelanden för programmet. Det här området omfattar även utökning av säkerhetssystemet, metadatasystemet, serialiseringssystemet samt bindningar och bindningselement som ansluter programmet till det underliggande kanalsystemet.
Kanalen och kanalkörningen. Detta utökar det system som fungerar på meddelandenivå och tillhandahåller stöd för protokoll, transport och kodning.
Värdkörningen. Detta utökar relationen mellan värdprogramdomänen och kanalen och programkörningen.
Utöka programkörningen
I WCF-program finns det en skillnad mellan meddelanden som är avsedda för en motsvarande kanal och meddelanden som är avsedda för själva programmet. Kanalmeddelanden stöder vissa kanalrelaterade funktioner, till exempel att upprätta en säker konversation eller upprätta en tillförlitlig session. Dessa meddelanden är inte tillgängliga för programkörningen. de bearbetas innan programskiktet ingår.
Programmeddelanden innehåller data som är avsedda för en klient- eller tjänståtgärd som du eller kunden har skapat. Dessa meddelanden är tillgängliga för tilläggssystemet på programnivå i meddelande- eller objektformulär, beroende på dina behov.
Alla meddelanden passerar genom kanalsystemet. endast programmeddelanden skickas från kanalsystemet till programmet. Om du vill skapa nya funktioner på kanalnivå måste du utöka kanalsystemet. Om du vill skapa nya funktioner på programnivå måste du utöka tjänsten eller klientkörningen (dispatchers respektive kanalfabriker). Mer information om hur du utökar programkörningen finns i Utöka ServiceHost och Service Model Layer.
Utöka säkerheten
Om du vill skapa anpassade säkerhetsmekanismer som token och autentiseringsuppgifter måste du utöka säkerhetssystemet. Mer information finns i Utöka säkerhet.
Utöka metadata
Om du vill exponera dina metadata på ett annat sätt än standardvärdet måste du utöka metadatasystemet. Mer information finns i Utöka metadatasystemet.
Utöka serialisering
Om du vill skapa anpassade kodare, tillhandahålla datasurrogat eller annat arbete med anpassning av överförda data måste du utöka serialiseringssystemet. Mer information finns i Utöka kodare och serialiserare.
Utöka bindningar
Om du vill associera transport- eller protokollkanaler med programskiktet måste du utöka bindningssystemet. Mer information finns i Utöka bindningar.
Utöka kanalsystemet
Information om hur du skapar kanaler som stöder anpassade transport- eller protokollfunktioner finns i Utöka kanallagret.
Utöka tjänstvärdsystemet
Om du vill ändra den tjänstomfattande programmodellen måste du utöka System.ServiceModel.ServiceHostBase klassen. Mer information finns i Utöka ServiceHost och Service Model Layer.
Om du vill ändra relationen mellan värdprogramdomänen och tjänstvärden måste du utöka System.ServiceModel.Activation.ServiceHostFactory klassen. Mer information finns i Utöka värdtjänster med Hjälp av ServiceHostFactory.