C# 在.net Webservice中引用.net DLL
我正在开发一个Web服务,它引用了第三方API。调用方法时,将在相应的事件处理程序中获得结果。用户需要订阅事件才能获得结果。Webservice公开了一个调用API方法的方法,比如Method1(带有[webmethod]属性)。API调用的结果在webservice developer创建的事件处理程序中获得。现在,任何使用Web服务的客户端都可以调用Method1。当客户端使用支持异步操作的webservice时,.NET会为每个方法创建完成的事件。在我的例子中,将有“Method1Async”方法和“Method1CompletedEvent”。方法的已完成事件结果返回类型。如何返回在事件处理程序中获得的结果?尝试使用ManualResetEventC# 在.net Webservice中引用.net DLL,c#,.net,web-services,events,C#,.net,Web Services,Events,我正在开发一个Web服务,它引用了第三方API。调用方法时,将在相应的事件处理程序中获得结果。用户需要订阅事件才能获得结果。Webservice公开了一个调用API方法的方法,比如Method1(带有[webmethod]属性)。API调用的结果在webservice developer创建的事件处理程序中获得。现在,任何使用Web服务的客户端都可以调用Method1。当客户端使用支持异步操作的webservice时,.NET会为每个方法创建完成的事件。在我的例子中,将有“Method1Asyn
[WebMethod]
public object Method1()
{
object result = null;
var resetEvent = new ManualResetEvent(false);
var obj = new (3rd party object);
obj.(3rd party event) += (paras) =>
{
result = (3rd party result which in paras);
resetEvent.Set();
};
obj.method(...);
resetEvent.WaitOne();
return result;
}
尝试使用ManualResetEvent
[WebMethod]
public object Method1()
{
object result = null;
var resetEvent = new ManualResetEvent(false);
var obj = new (3rd party object);
obj.(3rd party event) += (paras) =>
{
result = (3rd party result which in paras);
resetEvent.Set();
};
obj.method(...);
resetEvent.WaitOne();
return result;
}