. Tekrar eden kod satırlarını minimumda tutmak için aşağıdaki uzantı yöntemini kullandım. Bu uzantı yöntemi kullanarak kod
public static class ICommunicationObjectExtensions
{
public static void SafelyCloseConnection(this ICommunicationObject objectToClose)
{
bool success = false;
try
{
objectToClose.Close();
success = true;
}
finally
{
if (!success)
{
objectToClose.Abort();
}
}
}
}
Örnek: Elbette
HelloWorldServiceClient client = new HelloWorldServiceClient();
HelloWorldDataContract dc = new HelloWorldDataContract();
try
{
client.Open();
dc = client.SayHello();
} // Add catch blocks here for anything you want to handle.
finally
{
client.SafelyCloseConnection();
}
bu C#, ama hala yardım olması gerektiğini düşünüyorum.
Ben senin çözüm ister, ancak var mı ki Bağımlılık Enjeksiyon ile kullanılabilir. Hizmet bir bağımlılık olduğundan, testimi buna karşı uygulamak istemiyorum. –
Bu benim çözümüm değil. Her durumda, "" Hizmetini statik olmayan hale getirebileceğinizi ve "ChannelFactory " veya "IClientChannel" öğelerini enjekte edebileceğinizi umuyorum. –