Skip to content
This repository was archived by the owner on Nov 8, 2020. It is now read-only.

Commit 848eea4

Browse files
committed
1 parent 538f691 commit 848eea4

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

src/Ray.Core/Core/Grains/ObserverGrain.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public ObserverGrain()
3535
var methods = GetType().GetMethods().Where(m =>
3636
{
3737
var parameters = m.GetParameters();
38-
return parameters.Length >= 1 && parameters.Any(p => typeof(IEvent).IsAssignableFrom(p.ParameterType));
38+
return parameters.Length >= 1 && parameters.Any(p => typeof(IEvent).IsAssignableFrom(p.ParameterType) && !p.ParameterType.IsInterface);
3939
}).ToList();
4040
var dynamicMethod = new DynamicMethod($"Handler_Invoke", typeof(Task), new Type[] { typeof(object), typeof(IEvent), typeof(EventBase) }, GrainType, true);
4141
var ilGen = dynamicMethod.GetILGenerator();
@@ -56,7 +56,7 @@ public ObserverGrain()
5656
});
5757
}
5858
var sortList = new List<SwitchMethodEmit>();
59-
foreach (var item in switchMethods.Where(m => m.CaseType.BaseType == typeof(object)))
59+
foreach (var item in switchMethods.Where(m => !typeof(IEvent).IsAssignableFrom(m.CaseType.BaseType)))
6060
{
6161
sortList.Add(item);
6262
GetInheritor(item, switchMethods, sortList);

src/Ray.Core/Snapshot/SnapshotHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public SnapshotHandler()
2424
var methods = GetType().GetMethods().Where(m =>
2525
{
2626
var parameters = m.GetParameters();
27-
return parameters.Length >= 2 && parameters.Any(p => p.ParameterType == typeof(Snapshot)) && parameters.Any(p => typeof(IEvent).IsAssignableFrom(p.ParameterType));
27+
return parameters.Length >= 2 && parameters.Any(p => p.ParameterType == typeof(Snapshot)) && parameters.Any(p => typeof(IEvent).IsAssignableFrom(p.ParameterType) && !p.ParameterType.IsInterface);
2828
}).ToList();
2929
var dynamicMethod = new DynamicMethod($"Handler_Invoke", typeof(void), new Type[] { typeof(object), typeof(Snapshot), typeof(IEvent), typeof(EventBase) }, thisType, true);
3030
var ilGen = dynamicMethod.GetILGenerator();
@@ -45,7 +45,7 @@ public SnapshotHandler()
4545
});
4646
}
4747
var sortList = new List<SwitchMethodEmit>();
48-
foreach (var item in switchMethods.Where(m => m.CaseType.BaseType == typeof(object)))
48+
foreach (var item in switchMethods.Where(m => !typeof(IEvent).IsAssignableFrom(m.CaseType.BaseType)))
4949
{
5050
sortList.Add(item);
5151
GetInheritor(item, switchMethods, sortList);

0 commit comments

Comments
 (0)