Genişletilebilirlik Genel Bakış
Windows Communication Foundation (WCF) uygulama modeli, herhangi bir dağıtılmış uygulamanın iletişim gereksinimlerinin büyük bölümünü çözmek için tasarlanmıştır. Ancak varsayılan uygulama modelinin ve sistem tarafından sağlanan uygulamaların desteklemediği senaryolar her zaman vardır. WCF genişletilebilirlik modeli, tüm uygulama modelini değiştirme noktasında bile sistem davranışını her düzeyde değiştirmenizi sağlayarak özel senaryoları desteklemeye yöneliktir. Bu konu başlığı altında çeşitli uzantı alanları özetlenmiştir ve her biri hakkında daha fazla bilgiye işaret eder.
Genişletecek Alanlar
Genişletebilirsiniz:
Uygulama çalışma zamanı. Bu, uygulama için iletilerin gönderilmesini ve işlenmesini genişletir. Bu alan güvenlik sistemini, meta veri sistemini, serileştirme sistemini ve uygulamayı temel kanal sistemine bağlayan bağlamaları ve bağlama öğelerini genişletmeyi de içerir.
Kanal ve kanal çalışma zamanı. Bu, ileti düzeyinde işlev gösteren sistemi genişleterek protokol, aktarım ve kodlama desteği sağlar.
Konak çalışma zamanı. Bu, barındırma uygulaması etki alanının kanal ve uygulama çalışma zamanıyla ilişkisini genişletir.
Uygulama Çalışma Zamanını Genişletme
WCF uygulamalarında, ilgili kanalı hedefleyen iletiler ile uygulamanın kendisini hedefleyen iletiler arasında bir ayrım vardır. Kanal iletileri, güvenli bir konuşma oluşturma veya güvenilir bir oturum oluşturma gibi kanalla ilgili bazı işlevleri destekler. Bu iletiler uygulama çalışma zamanı tarafından kullanılamaz; bunlar uygulama katmanı dahil olmadan önce işlenir.
Uygulama iletileri, sizin veya müşterinizin oluşturduğu bir istemci veya hizmet işlemini hedefleyen veriler içerir. Bu iletiler, gereksinimlerinize bağlı olarak ileti veya nesne biçiminde uygulama düzeyi uzantı sistemi tarafından kullanılabilir.
Tüm iletiler kanal sisteminden geçer; yalnızca uygulama iletileri kanal sisteminden uygulamaya geçirilir. Yeni kanal düzeyinde işlevsellik oluşturmak için kanal sistemini genişletmeniz gerekir. Yeni uygulama düzeyinde işlevsellik oluşturmak için hizmet veya istemci çalışma zamanını (sırasıyla dağıtıcılar ve kanal fabrikaları) genişletmeniz gerekir. Uygulama çalışma zamanını genişletme hakkında daha fazla bilgi için bkz . ServiceHost ve Hizmet Modeli Katmanını Genişletme.
Güvenliği Genişletme
Belirteçler ve kimlik bilgileri gibi özel güvenlik mekanizmaları oluşturmak için güvenlik sistemini genişletmeniz gerekir. Daha fazla bilgi için bkz . Güvenliği Genişletme.
Meta Verileri Genişletme
Meta verilerinizi varsayılandan farklı bir şekilde kullanıma sunmanız için meta veri sistemini genişletmeniz gerekir. Daha fazla bilgi için bkz . Meta Veri Sistemini Genişletme.
Serileştirmeyi Genişletme
Özel kodlayıcılar oluşturmak, veri vekilleri sağlamak veya aktarılan verilerin özelleştirilmesini içeren diğer işleri sağlamak için serileştirme sistemini genişletmeniz gerekir. Daha fazla bilgi için bkz . Kodlayıcıları ve Seri Hale Getiricileri Genişletme.
Bağlamaları Genişletme
Aktarım veya protokol kanallarını uygulama katmanıyla ilişkilendirmek için bağlama sistemini genişletmeniz gerekir. Daha fazla bilgi için bkz . Bağlamaları Genişletme.
Kanal Sistemini Genişletme
Özel aktarımları veya protokol işlevselliğini destekleyen kanallar oluşturmak için bkz . Kanal Katmanını Genişletme.
Hizmet Barındırma Sistemini Genişletme
Hizmet genelinde uygulama modelini değiştirmek için sınıfını genişletmeniz System.ServiceModel.ServiceHostBase gerekir. Daha fazla bilgi için bkz . ServiceHost ve Hizmet Modeli Katmanını Genişletme.
Barındırma uygulaması etki alanı ile hizmet konağı arasındaki ilişkiyi değiştirmek için sınıfını System.ServiceModel.Activation.ServiceHostFactory genişletmeniz gerekir. Daha fazla bilgi için bkz . ServiceHostFactory Kullanarak Barındırmayı Genişletme.