Aracılığıyla paylaş


IStreamProvider Arabirim

Tanım

Akış sağlayan sınıflar tarafından uygulanabilen bir arabirimi temsil eder.

public interface class IStreamProvider
public interface IStreamProvider
type IStreamProvider = interface
Public Interface IStreamProvider

Açıklamalar

Xml yazıcısına akış gövdesi içeren bir giden ileti yazarken, Message uygulamasında aşağıdakine OnWriteBodyContents(XmlDictionaryWriter) benzer bir çağrı dizisi kullanır:

  • Akış öncesinde gerekli tüm bilgileri yazın (Örneğin, açılış XML etiketi).

  • Akışı yazın.

  • Akışı takip eden tüm bilgileri yazın (Örneğin, kapanış XML etiketi).

Bu, metinsel XML kodlamasına benzer kodlamalarla iyi çalışır. Ancak, XML bilgi kümesi bilgilerini (örneğin, XML öğelerini başlatma ve sonlandırma etiketleri) öğelerin içinde yer alan verilerle birlikte yerleştirmeyen bazı kodlamalar vardır. Örneğin, MTOM kodlamasında ileti birden çok bölüme ayrılır. Bir bölüm, gerçek öğe içeriği için diğer bölümlere başvurular içerebilen XML bilgi kümesi içerir. XML bilgi kümesi normalde akışı yapılan içeriklerle karşılaştırıldığında küçük olacağından, bilgi kümesini arabelleğe almak, yazmak ve ardından içeriği akışlı bir şekilde yazmak mantıklıdır. Bu, kapanış öğesi etiketi yazıldıktan sonra akışı henüz yazmamış olmamız gerektiği anlamına gelir.

Bu amaçla IStreamProvider arabirimi kullanılır. arabirimi, yazılacak akışı döndüren bir GetStream() yönteme sahiptir. akışı yapılan ileti gövdesini OnWriteBodyContents(XmlDictionaryWriter) yazmanın doğru yolu aşağıdaki gibidir:

  • Akış öncesinde gerekli tüm bilgileri yazın (Örneğin, açılış XML etiketi)

  • WriteValue yazılacak akışı döndüren bir IStreamProviderIStreamProvider uygulama ile bir alan üzerindeki XmlDictionaryWriter aşırı yüklemeyi çağırın.

  • Akışı takip eden bilgileri yazın (Örneğin, kapanış XML etiketi)

Bu yaklaşımla, XML yazıcısı akış verilerinin ne zaman çağrılıp GetStream() yazılabileceğine ilişkin bir seçime sahiptir. Örneğin, metinsel ve ikili XML yazarları bunu hemen çağırır ve akış içeriklerini başlangıç ve bitiş etiketleri arasında yazar. MTOM yazıcısı, iletinin uygun bölümünü yazmaya hazır olduğunda daha sonra aramaya GetStream() karar verebilir.

Yöntemler

GetStream()

Akış alır.

ReleaseStream(Stream)

Çıkışa bir akış yayınlar.

Şunlara uygulanır