mirror of
https://github.com/microsoft/autogen.git
synced 2025-07-04 15:41:15 +00:00
fix handler selection
This commit is contained in:
parent
2fd6eee080
commit
fd6a369422
@ -71,8 +71,12 @@ public abstract class BaseAgent : IAgent, IHostableAgent
|
|||||||
if (_handlersByMessageType.TryGetValue(messageType, out var handlerMethod))
|
if (_handlersByMessageType.TryGetValue(messageType, out var handlerMethod))
|
||||||
{
|
{
|
||||||
// Determine if this is a IHandle<T> or IHandle<T, U> method
|
// Determine if this is a IHandle<T> or IHandle<T, U> method
|
||||||
var genericArguments = handlerMethod.GetParameters();
|
// We need to check if return type is a bare ValueTask or ValueTask<T>
|
||||||
if (genericArguments.Length == 1)
|
var ret = handlerMethod.ReturnType;
|
||||||
|
var genericArguments = ret.GetGenericArguments();
|
||||||
|
|
||||||
|
// The non-returning type uses ValueTask
|
||||||
|
if (genericArguments.Length == 0)
|
||||||
{
|
{
|
||||||
// This is a IHandle<T> method
|
// This is a IHandle<T> method
|
||||||
var return_value = handlerMethod.Invoke(this, new object[] { message, messageContext });
|
var return_value = handlerMethod.Invoke(this, new object[] { message, messageContext });
|
||||||
@ -82,7 +86,8 @@ public abstract class BaseAgent : IAgent, IHostableAgent
|
|||||||
return ValueTask.CompletedTask;
|
return ValueTask.CompletedTask;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (genericArguments.Length == 2)
|
// The returning type uses ValueTask<T>
|
||||||
|
else if (genericArguments.Length == 1)
|
||||||
{
|
{
|
||||||
// This is a IHandle<T, U> method
|
// This is a IHandle<T, U> method
|
||||||
// var _messageType = genericArguments[0];
|
// var _messageType = genericArguments[0];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user