對於一些測試代碼,我希望能夠在幾行內容中託管一個WCF服務。我想我會寫一個簡單的託管類:這是託管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>()) {
有什麼不對這種方法?代碼中是否存在缺陷(特別是關於處置)?
是的,我聽說過這個問題。所以我認爲這適用於這種情況。 – mafu 2010-04-12 14:29:38
是的,我必須找出困難的方式,這個問題不僅適用於客戶端,但也適用於主機... – 2010-04-12 14:41:34