Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kontrakty směrování definují vzory zpráv, které může služba směrování zpracovat. Každý kontrakt je bez typů a umožňuje službě přijímat zprávu bez znalosti schématu zprávy nebo akce. To umožňuje směrovací službě obecně směrovat zprávy bez další konfigurace pro specifika směrovaných podkladových zpráv.
Kontrakty směrování
Vzhledem k tomu, že směrovací služba přijímá obecný objekt zprávy WCF, je nejdůležitějším aspektem při výběru kontraktu tvar kanálu, který se použije při komunikaci s klienty a službami. Při zpracování zpráv služba Směrování používá symetrická čerpadla zpráv, takže obecně tvar příchozího kontraktu musí odpovídat tvaru odchozího kontraktu. Existují však případy, kdy dispečer modelu služby může upravit kanálové struktury, například když dispečer převede duplexní kanál na request-reply kanál, nebo odebere podporu relace z kanálu, pokud není vyžadována a není využívána (to znamená, že SessionMode.Allowed, převedení IInputSessionChannel na IInputChannel).
Aby služba směrování podporovala tato čerpadla zpráv, poskytuje kontrakty v System.ServiceModel.Routing oboru názvů, které musí být použity při definování koncových bodů služby používané službou směrování. Tyto kontrakty jsou bez typů, což umožňuje příjem jakéhokoli typu zprávy nebo akce a umožňuje službě směrování zpracovávat zprávy bez znalosti konkrétního schématu zpráv. Další informace o kontraktech používaných službou směrování naleznete v tématu Kontrakty směrování.
Kontrakty poskytované službou Směrování jsou umístěny v System.ServiceModel.Routing oboru názvů a jsou popsány v následující tabulce.
| Smlouva | Tvar | Obrazec kanálu |
|---|---|---|
| ISimplexDatagramRouter | SessionMode = SessionMode.Allowed AsyncPattern = true IsOneWay = true |
IInputChannel –> IOutputChannel |
| ISimplexSessionRouter | SessionMode = SessionMode.Požadováno AsyncPattern = true IsOneWay = true |
IInputSessionChannel –> IOutputSessionChannel |
| IRequestReplyRouter | SessionMode = SessionMode.Allowed AsyncPattern = true |
IReplyChannel –> IRequestChannel |
| IDuplexSessionRouter | SessionMode=SessionMode.Required CallbackContract=typeof(ISimplexSession) AsyncPattern = true IsOneWay = true TransactionFlow(TransactionFlowOption.Allowed) |
IDuplexSessionChannel –> IDuplexSessionChannel |