Еще одна вещь: запуск GC Collect явно не может улучшить производительность вашей программы.
. NET GC хорошо спроектирован и настроен как адаптивный, что означает, что он может настроить порог GC0 / 1/2 в соответствии с «привычкой» вашей программной памяти Применение. Таким образом, он будет адаптирован к вашей программе через некоторое время. Когда вы вызовете GC.Collect явно, пороговые значения будут сброшены! И .NET должен потратить время, чтобы снова адаптироваться к привычке вашей программы.
Мое предложение всегда является надежным .NET GC. Любые проблемы с памятью, проверьте счетчик производительности «.NET Memory» и диагностируйте мой собственный код.
Похоже, что вы хотите сделать, вам нужен общий интерфейс между двумя сервисами, чтобы вы могли внедрить любой сервис, который вы хотите использовать.
public class WebService1 : IWebService {...service code}
public class WebService2 : IWebService{...service code}
public interface IWebService{...service methods you will be calling}
Тогда вы можете сделать следующее.
IWebService service = new WebService1.Service();
service = new WebService2.Service();