2010-08-03 56 views
0

是否可以使用WCF的CallbackContract或WCF从Asp.Net Ajax控件/页面提供的任何其他“远程事件”机制?Asp.Net使用带有CallbackContract的WCF服务的Ajax控件

到目前为止,我发现的所有文章都是从Asp.Net页面分别处理CallbackContracts和WCF的用法。 有没有办法让服务的回调回到发起呼叫的页面?

非常感谢。

回答

1

是的,当然。如果你只想用一个回调函数(Duplex)调用一个wcf服务,你可以像往常一样在脚本方法中完成。

编辑: 我不知道你与Ajax有什么关系,但是,假设你想建议用户使用来自WCF服务的数据来填充带有AutoCompleteExtender的文本框,你必须提供一个ScriptMethod。它里面你可以调用通常的方式将服务作为MSDN

[WebMethod, ScriptMethod] 
public static string[] GetSuggestedItems(string prefixText, int count) 
{ 
    // Construct InstanceContext to handle messages on callback interface 
    InstanceContext instanceContext = new InstanceContext(new MyCallbackHandler()); 

    // Create a client 
    MyDuplexClient client = new MyDuplexClient(instanceContext); 

    return client.GetModelItems(prefixText).GetRange(0, count); 
} 

解释说,一旦你定义的回调处理程序:

public class MyCallbackHandler : IMyCallbackContract 
{ 
    .... 
} 
+0

感谢您的答复。你可以分享一些代码示例,因为我对WCF和Ajax都相对陌生吗? – Konrad 2010-08-04 11:10:17

+0

我编辑了我的答案 – onof 2010-08-04 12:07:36