IEndpointBehavior Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Implementuje metody, které lze použít k rozšíření chování za běhu koncového bodu v rámci služby nebo klientské aplikace.
public interface class IEndpointBehavior
public interface IEndpointBehavior
type IEndpointBehavior = interface
Public Interface IEndpointBehavior
- Odvozené
Příklady
Následující příklad kódu ukazuje implementaci chování koncového bodu, které přidá System.ServiceModel.Dispatcher.IDispatchMessageInspector objekt v aplikaci služby. V tomto případě EndpointBehaviorMessageInspector třída implementuje System.ServiceModel.Dispatcher.IDispatchMessageInspector kontrolu příchozí a odchozí zprávy, IEndpointBehavior rozhraní pro vložení třídy inspektoru do kontrolního systému pro všechny koncové body, na které se chování vztahuje, a System.ServiceModel.Configuration.BehaviorExtensionElement povolení chování inspektoru zpráv pomocí konfiguračního souboru aplikace.
Prvním krokem je implementace kontroly zpráv.
// IDispatchMessageInspector Members
public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel, InstanceContext instanceContext)
{
Console.WriteLine("AfterReceiveRequest called.");
return null;
}
public void BeforeSendReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
Console.WriteLine("BeforeSendReply called.");
}
Následující příklad kódu ukazuje použití ApplyDispatchBehavior metody k přidání inspektoru zpráv do DispatchRuntime.MessageInspectors vlastnosti.
// IEndpointBehavior Members
public void AddBindingParameters(ServiceEndpoint serviceEndpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
{
return;
}
public void ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime behavior)
{
behavior.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}
public void ApplyDispatchBehavior(ServiceEndpoint serviceEndpoint, EndpointDispatcher endpointDispatcher)
{
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new EndpointBehaviorMessageInspector());
}
public void Validate(ServiceEndpoint serviceEndpoint)
{
return;
}
Následující příklad kódu ukazuje implementaci System.ServiceModel.Configuration.BehaviorExtensionElement , aby bylo možné povolit použití chování inspektoru zpráv z konfiguračního souboru.
// BehaviorExtensionElement members
public override Type BehaviorType
{
get { return typeof(EndpointBehaviorMessageInspector); }
}
protected override object CreateBehavior()
{
return new EndpointBehaviorMessageInspector();
}
Nakonec následující konfigurační soubor ukazuje, jak lze předchozí příklad použít z konfigurace.
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.WCF.Documentation.SampleService"
behaviorConfiguration="metadataSupport"
>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/ServiceMetadata" />
</baseAddresses>
</host>
<endpoint
address="/SampleService"
binding="wsHttpBinding"
behaviorConfiguration="withMessageInspector"
contract="Microsoft.WCF.Documentation.ISampleService"
/>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="metadataSupport">
<serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="withMessageInspector">
<endpointMessageInspector />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add
name="endpointMessageInspector"
type="Microsoft.WCF.Documentation.EndpointBehaviorMessageInspector, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
</configuration>
Poznámky
IEndpointBehavior Implementujte rozhraní pro úpravy, zkoumání nebo rozšíření určitého aspektu provádění na úrovni aplikace na úrovni aplikace pro klientské aplikace nebo aplikace služeb.
AddBindingParameters Pomocí metody můžete předat vlastní data za běhu, aby bylo možné povolit vazby pro podporu vlastního chování.
ApplyClientBehavior Tato metoda slouží k úpravě, prozkoumání nebo vložení rozšíření do koncového bodu v klientské aplikaci.
Tuto metodu ApplyDispatchBehavior použijte k úpravě, prozkoumání nebo vložení rozšíření pro provádění v aplikaci služby pro celý koncový bod.
Použijte metodu ValidateServiceEndpoint k potvrzení, že splňuje konkrétní požadavky. To se dá použít k zajištění, že koncový bod má povolené určité nastavení konfigurace, podporuje konkrétní funkci a další požadavky.
IEndpointBehavior objekty mohou využívat některou z těchto metod, ale často je jen jedna důležitá; v takových případech se nepoužívané metody můžou vrátit a neprovedou žádnou akci.
Note
IEndpointBehavior Všechny metody předávají ServiceEndpoint objekt jako parametr. Tento parametr je určen pouze ke zkoumání; pokud upravíte ServiceEndpoint objekt chování provádění je nedefinováno.
IEndpointBehaviorobjekty se obvykle používají pro přístup k různým vlastnostem System.ServiceModel.Dispatcher.DispatchRuntime, System.ServiceModel.Dispatcher.DispatchOperation, System.ServiceModel.Dispatcher.EndpointDispatchera System.ServiceModel.Dispatcher.ChannelDispatcher objektů v aplikaci služby a System.ServiceModel.Dispatcher.ClientRuntime v klientské aplikaci.System.ServiceModel.Dispatcher.ClientOperation Kromě toho můžete přistupovat k vlastnostem duplexních klientů a služeb pomocí vlastností ClientRuntime.CallbackDispatchRuntime a DispatchRuntime.CallbackClientRuntime vlastností.
Popis různých dostupných vlastností a přizpůsobení naleznete v tématu Rozšíření ServiceHost a vrstvy modelu služby.
Jakmile se rozhodnete o přizpůsobení (a v případě potřeby implementované rozhraní pro přizpůsobení) a IEndpointBehavior bylo rozhodnuto, že se jedná o odpovídající rozsah přizpůsobení, je nutné přizpůsobení vložit do modulu runtime WCF (Windows Communication Foundation) implementací IEndpointBehavior a přidáním chování koncového bodu do modulu runtime.
Chování modulu runtime můžete přidat dvěma způsoby:
Programové přidání vlastního chování koncového bodu do Behaviors vlastnosti před otevřením hostitele služby (v aplikaci služby) nebo objektu pro vytváření kanálů (v klientské aplikaci).
Nakonfigurujte chování pomocí konfiguračního souboru aplikace. Podrobnosti najdete v tématu <behaviorExtensions>.
Chcete-li provést úlohu přizpůsobení služby, pro kterou je určena, IEndpointBehavior musí být objekt přidán do ServiceEndpoint.Behaviors vlastnosti před vytvořením modulu runtime služby, který nastane při ICommunicationObject.Open zavolání System.ServiceModel.ServiceHostmetody . Chcete-li provést úlohu přizpůsobení klienta, IEndpointBehavior musí být objekt přidán do ServiceEndpoint.Behaviors vlastnosti před voláním ChannelFactory<TChannel>.CreateChannel metody nebo ICommunicationObject.Open metody on ChannelFactory<TChannel>.
Metody
| Name | Description |
|---|---|
| AddBindingParameters(ServiceEndpoint, BindingParameterCollection) |
Implementujte předávání dat za běhu do vazeb pro podporu vlastního chování. |
| ApplyClientBehavior(ServiceEndpoint, ClientRuntime) |
Implementuje úpravu nebo rozšíření klienta v rámci koncového bodu. |
| ApplyDispatchBehavior(ServiceEndpoint, EndpointDispatcher) |
Implementuje změnu nebo rozšíření služby v rámci koncového bodu. |
| Validate(ServiceEndpoint) |
Implementujte, abyste potvrdili, že koncový bod splňuje některá zamýšlená kritéria. |