From 979a30805ee291e39f2d31d0713a50ec21cb24ac Mon Sep 17 00:00:00 2001 From: Ahmed Zamil Date: Sat, 7 Dec 2024 15:31:29 +0300 Subject: [PATCH] InvocationContext --- Esiur/Net/IIP/DistributedConnectionProtocol.cs | 3 ++- Esiur/Resource/Template/FunctionTemplate.cs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Esiur/Net/IIP/DistributedConnectionProtocol.cs b/Esiur/Net/IIP/DistributedConnectionProtocol.cs index e505527..d1915e2 100644 --- a/Esiur/Net/IIP/DistributedConnectionProtocol.cs +++ b/Esiur/Net/IIP/DistributedConnectionProtocol.cs @@ -1528,7 +1528,8 @@ partial class DistributedConnection try { rt = ft.MethodInfo.Invoke(target, args); - context.Ended = true; + if (context != null) + context.Ended = true; } catch (Exception ex) { diff --git a/Esiur/Resource/Template/FunctionTemplate.cs b/Esiur/Resource/Template/FunctionTemplate.cs index 0538eeb..04bcba7 100644 --- a/Esiur/Resource/Template/FunctionTemplate.cs +++ b/Esiur/Resource/Template/FunctionTemplate.cs @@ -88,7 +88,7 @@ public class FunctionTemplate : MemberTemplate { rtType = RepresentationType.FromType(mi.ReturnType.GetGenericArguments()[0]); } - else if (genericRtType == typeof(IEnumerable<>) || genericRtType == typeof(IAsyncEnumerable<>)) + else if (genericRtType == typeof(IEnumerable<>))// || genericRtType == typeof(IAsyncEnumerable<>)) { // get export rtType = RepresentationType.FromType(mi.ReturnType.GetGenericArguments()[0]); @@ -158,7 +158,8 @@ public class FunctionTemplate : MemberTemplate if (args.Length > 0) { - if (args.Last().ParameterType == typeof(DistributedConnection)) + if (args.Last().ParameterType == typeof(DistributedConnection) + || args.Last().ParameterType == typeof(InvocationContext)) args = args.Take(args.Count() - 1).ToArray(); }