В WCF Client Architecture, он говоритпочему объект интерфейса контрактной службы WCF может быть преобразован в IClientChannel
При использовании класса ChannelFactory с интерфейсом контракта на обслуживание, вы должны привести к интерфейсу IClientChannel явно открыть, закрыть или прервать канал
Так вы создаете и использовать объект канала клиента, как это:
var cf = new ChannelFactory<ICalculator>(binding, ea);
var channel = cf.CreateChannel();
double result = channel.Add(5.2, 3.5);
Console.WriteLine(channel.GetType()); // outputs ICalculator
Console.WriteLine(result);
((IClientChannel)channel).Close();
Th Это две вещи, которые меня путают.
- Метод signaure из
CreateChannel
, а также первый выход стандарт, указывает на то, что переменная канала имеет тип ICalculator, как он может быть преобразован вIClientChannel
? - Объект, возвращенный
CreateChannel
должен быть определенный объект TypeOf который реализует независимо интерфейс (ы), иchannel.GetType()
должен вернуть этот точный тип, поэтому он возвращает тип интерфейса?
Спасибо, @vid. Вы мне рассказываете о том, как WCF реализует интерфейс контракта на обслуживание. Не могли бы вы объяснить, почему GetType() возвращает ICalculator? Я все равно не получаю его, если он возвращает точный тип времени выполнения объекта, на который ссылается, тогда он должен возвращать информацию о типе типа, созданного средой выполнения WCF. –