平時我有客戶端代碼類同是這樣的:測試IDisposable接口和WCF客戶
// SomeOtherServiceClient would be injected in actual code.
ISomeOtherService client = new SomeOtherServiceClient();
......這樣我可以用於測試的模擬服務。但是現在我有一個WCF服務,其環境模式設置爲PerSession
並實現IDisposable
。
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class SampleService : ISampleService, IDisposable
{
public void SampleMethod() { ... }
public void Dispose() { ... }
}
如果我希望把這些客戶端using
語句中,有對我來說還是一種方式來嘲笑客戶端進行測試?
// SampleServiceClient would be injected in actual code.
using (var client = new SampleServiceClient())
{
...
}
Juval Lowy明確建議不要使用proxys上的using語句。在有傳輸會話的情況下,任何服務端預期都會使通道出現故障。嘗試在通道出現故障時分配代理將拋出CommunicationObjectFaultedException。 – 2010-09-09 03:51:34