2010-03-09 10 views
21

So che posso aggiungere comportamenti di servizio con alcune configurazioni XML, ma mi piacerebbe farlo con una parte di C#, in modo simile a come è possibile aggiungere comportamenti endpoint. Non sono sicuro di come farlo, però.Aggiunta di comportamenti di servizio WCF con codice

In altre parole, come posso aggiungere il comportamento di debug che ho istanziato di seguito?

var host = new ServiceHost(typeof(MyService)); 
var endpoint = host.AddServiceEndpoint(typeof (MysService), 
    new WebHttpBinding(), new Uri(myURL)); 
endpoint.Behaviors.Add(new WebHttpBehavior()); 
var debug = new ServiceDebugBehavior 
{ 
    IncludeExceptionDetailInFaults = true 
}; 
//WHAT DO I PUT HERE? 
host.Open(); 

risposta

31
host.Description.Behaviors.Add(debug); 
+5

Grazie! Risulta che non potrei fare .Add() perché quel comportamento è già lì. Ma questo ha funzionato benissimo: 'host.Description.Behaviors.Find (). IncludeExceptionDetailInFaults = true' –

+0

Cosa succede se questo comportamento è definito in confituration, ma il servizio nel codice? Come aggiungerlo all'host WCF con il codice? – FrenkyB

1

Inoltre è possibile scrivere un atrribute per il vostro servizio per esempio

[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
public class Service1 : IServiceChild