Pour un code de test, je voudrais être en mesure d'accueillir un service WCF en quelques lignes. Je pensais que je serais écrire une simple classe d'hébergement:Est-ce une bonne façon d'accueillir un service WCF?
public class WcfHost<Implementation, Contract> : IDisposable
where Implementation : class
where Contract : class
{
public readonly string Address = "net.tcp://localhost:8000/";
private ServiceHost _Host;
public WcfHost()
{
_Host = new ServiceHost (typeof (Implementation));
var binding = new NetTcpBinding();
var address = new Uri (Address);
_Host.AddServiceEndpoint (
typeof (Contract),
binding,
address);
_Host.Open();
}
public void Dispose()
{
((IDisposable) _Host).Dispose();
}
}
qui peut être utilisé comme ceci:
using (var host = new WcfHost<ImplementationClass, ContractClass>()) {
Y at-il quelque chose de mal avec cette approche? Y a-t-il une faille dans le code (surtout concernant la disposition)?
Oui, j'ai entendu parler de cette question. Donc, cela s'applique à ce cas, je vois. – mafu
oui, je devais découvrir à la dure que ce problème ne s'applique pas seulement aux clients mais aussi aux hôtes ... –