Share via


ServiceDescription.Behaviors Eigenschaft

Definition

Ruft die dem Dienst zugeordneten Verhalten ab.

public:
 property System::Collections::Generic::KeyedByTypeCollection<System::ServiceModel::Description::IServiceBehavior ^> ^ Behaviors { System::Collections::Generic::KeyedByTypeCollection<System::ServiceModel::Description::IServiceBehavior ^> ^ get(); };
public System.Collections.Generic.KeyedByTypeCollection<System.ServiceModel.Description.IServiceBehavior> Behaviors { get; }
member this.Behaviors : System.Collections.Generic.KeyedByTypeCollection<System.ServiceModel.Description.IServiceBehavior>
Public ReadOnly Property Behaviors As KeyedByTypeCollection(Of IServiceBehavior)

Eigenschaftswert

KeyedByTypeCollection<IServiceBehavior>

Die KeyedByTypeCollection<TItem> vom Typ IServiceBehavior, die die dem Dienst zugeordneten Verhalten enthält.

Beispiele

// Iterate through the list of behaviors in the ServiceDescription
ServiceDescription svcDesc = serviceHost.Description;
KeyedByTypeCollection<IServiceBehavior> sbCol = svcDesc.Behaviors;
foreach (IServiceBehavior behavior in sbCol)
{
    Console.WriteLine("Behavior: {0}", behavior.ToString());
}
Uri baseAddress = new Uri("http://localhost:8001/Simple");
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);

serviceHost.AddServiceEndpoint(
    typeof(ICalculator),
    new WSHttpBinding(),
    "CalculatorServiceObject");

// Enable Mex
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smb);

ServiceDescription sd = serviceHost.Description;
sd.Behaviors.Add(new MyCustomBehavior());

serviceHost.Open();
' Iterate through the list of behaviors in the ServiceDescription
Dim svcDesc As ServiceDescription = serviceHost.Description
Dim sbCol As KeyedByTypeCollection(Of IServiceBehavior) = svcDesc.Behaviors
For Each behavior As IServiceBehavior In sbCol
    Console.WriteLine("Behavior: {0}", CType(behavior, Object).ToString())
Next behavior
Dim baseAddress As New Uri("http://localhost:8001/Simple")
Dim serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)

serviceHost.AddServiceEndpoint(GetType(ICalculator), New WSHttpBinding(), "CalculatorServiceObject")

' Enable Mex
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
serviceHost.Description.Behaviors.Add(smb)

Dim sd As ServiceDescription = serviceHost.Description
sd.Behaviors.Add(New MyCustomBehavior())

serviceHost.Open()

Hinweise

Verwenden Sie diese Methode, wenn Sie benutzerdefinierte Verhalten hinzufügen, um ServiceHost zu erweitern. Das benutzerdefinierte Dienstverhalten muss den Add(T) mittels Behaviors programmgesteuert hinzugefügt werden, und zwar bevor die Open-Methode für das ServiceHost-Objekt aufgerufen wird.

Der Bereich des Verhaltentyps, auf den von der Beschreibungshierarchie zugegriffen werden kann, wird auf eine bestimmte Ebene festgelegt. Über ServiceDescription kann auf IServiceBehavior zugegriffen werden.

Wenn Sie stattdessen auf das einem Endpunkt zugeordnete IEndpointBehavior zugreifen möchten, können Sie die Endpunkte für den Dienst mithilfe der Endpoints-Eigenschaft abrufen. Rufen Sie dann die ServiceEndpoint Von der Auflistung mit der Methode ab, die Find die relevanten Suchkriterien verwendet, und rufen Sie die Behaviors Eigenschaft auf, um die Auflistung der IEndpointBehavior Objekte abzurufen.

Gilt für