Для некоторого кода тестирования я хотел бы иметь возможность разместить службу 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 ();
}
}
Это можно использовать так:
using (var host = new WcfHost<ImplementationClass, ContractClass> ()) {
Что-то не так с этим подходом? Есть ли в коде недостаток (особенно в отношении утилизации)?