【发布时间】:2011-08-24 04:03:13
【问题描述】:
我已经在我的代码中成功实现了 WCF 回调模式,现在我想实现一个异步回调。这是我的界面代码:
[ServiceContract(Name = "IMessageCallback")]
public interface IMessageCallback
{
[OperationContract(IsOneWay = true)]
void OnMessageAdded(string message, DateTime timestamp);
}
[ServiceContract(Name="IMessageCallback")]
public interface IAsyncMessageCallback
{
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginOnMessageAdded(string msg, DateTime timestamp, AsyncCallback callback, object asyncState);
void EndOnMessageAdded(IAsyncResult result);
}
[ServiceContract(CallbackContract = typeof(IMessageCallback))]
public interface IMessage
{
[OperationContract]
void AddMessage(string message);
}
为了使用同步回调,我声明了我的通道和端点,如下所示:
DuplexChannelFactory<IMessage> dcf = new DuplexChannelFactory<IMessage>(new InstanceContext(this), "WSDualHttpBinding_IMessage");
<endpoint address="net.tcp://localhost:8731/Message/"
binding="netTcpBinding"
contract="WCFCallbacks.IMessage" name="WSDualHttpBinding_IMessage">
我无法正确组合端点和通道来利用异步回调。有人能指出我正确的方向吗?
另外当下面这行代码执行时:
OperationContext.Current.GetCallbackChannel<IAsyncMessageCallback>();
我收到以下错误:
Unable to cast transparent proxy to type 'WCFCallbacks.IAsyncMessageCallback'
【问题讨论】:
标签: .net wcf asynchronous callback