1

tl;博士

对于这个问题,答案应该是ABA我能理解,但我找不到任何关于独立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)

对于这个问题,答案应该是ABA我能理解,但我找不到任何关于独立CreateChannnel方法的信息,比如它在B

谁能解释为什么答案B被认为是正确的或正确的,我最好完全放弃这些练习考试?

4

1 回答 1

4

答案 B 是印刷错误。它应该是:

IGreetingService greetingService = factory.CreateChannel(callbackContext); 
于 2012-07-19T17:42:40.833 回答