tl;博士
对于这个问题,答案应该是AB
。A
我能理解,但我找不到任何关于独立CreateChannnel
方法的信息,比如它在B
谁能解释为什么答案B
被认为是正确的或不正确的,我最好完全放弃这些练习考试?
背景
我正在尝试WCF
使用一些练习考试来学习。我已经遇到了几个问题,我不确定给定的答案是否正确。
以下问题,除了明显的拼写错误(interetface INameService),严重增加了我的疑虑。
问题是这样的
问题 21
Windows Communication Foundation (WCF) 解决方案使用以下协定。(包含的行号仅供参考。)
01 [ServiceContract(CallbackContract=typeof(INameService))]
02 public interface IGreetingService
03 {
04 [OperationContract]
05 string GetMessage();
06 }
07
08 [ServiceContract]
09 public intetface INameService
10 {
11 [OperationContract]
12 string GetName();
13 }
当客户端在服务接口上调用 GetMessage 时,服务在客户端回调上调用 GetName。在客户端,类NameService实现了回调合约。客户端通道创建如下:
22 InstanceContext callbackContext = new Instance Context(new NameService("client"));
23
24
25 DuplexChannelFactory <IGreetingService> factory =
new DuplexChannelFactory<IGreetingServices>(typeof(NameService),binding,address);
26 IGreetingService greetingService = factory.CreateChannel();
您需要确保服务回调由 NameService 的实例处理。实现这一目标的两种可能方法是什么?(每个正确答案都代表一个完整的解决方案。选择两个。)
我可以从以下答案中进行选择
A.将第25行改为如下代码段:
DuplexChannelFactory factory = new DuplexChannelFactory(callbackContext, binding, address);B.将第26行更改为以下代码段:IGreetingService greetingServicefactory = CreateChannel(callbackContext);
C.在第26行之后添加如下代码段:
callbackContextIncomingChannelsAdd((IDuplexChannel)greetingService)D.在第26行之后添加如下代码段:
callbackContext.OutgoingChannels.Add((IDuplexChannel)greetingService)
对于这个问题,答案应该是AB
。A
我能理解,但我找不到任何关于独立CreateChannnel
方法的信息,比如它在B
谁能解释为什么答案B
被认为是正确的或不正确的,我最好完全放弃这些练习考试?