diff --git a/Source/Orleankka/Core/ActorInterfaceMapping.cs b/Source/Orleankka/Core/ActorInterfaceMapping.cs index 10e80985..91ff2b5f 100644 --- a/Source/Orleankka/Core/ActorInterfaceMapping.cs +++ b/Source/Orleankka/Core/ActorInterfaceMapping.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using System.Linq; +using System.Reflection; namespace Orleankka.Core { @@ -7,7 +9,7 @@ class ActorInterfaceMapping : IEquatable { public static ActorInterfaceMapping Of(string typeName) => new ActorInterfaceMapping(typeName, null, null); - public static ActorInterfaceMapping Of(Type type) + public static ActorInterfaceMapping Of(Type type, IEnumerable assemblies) { var name = ActorTypeName.Of(type); @@ -22,7 +24,7 @@ public static ActorInterfaceMapping Of(Type type) if (type.IsInterface) { - var classes = AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes() + var classes = assemblies.SelectMany(a => a.GetTypes() .Where(x => x.IsClass && type.IsAssignableFrom(x))) .ToArray(); diff --git a/Source/Orleankka/Core/ActorInterfaceRegistry.cs b/Source/Orleankka/Core/ActorInterfaceRegistry.cs index d49149d0..465def89 100644 --- a/Source/Orleankka/Core/ActorInterfaceRegistry.cs +++ b/Source/Orleankka/Core/ActorInterfaceRegistry.cs @@ -33,7 +33,7 @@ internal void Register(Assembly[] assemblies, Func> foreach (var type in assemblies.SelectMany(selector)) { - var mapping = ActorInterfaceMapping.Of(type); + var mapping = ActorInterfaceMapping.Of(type, assemblies); if (interfaces.Contains(mapping.TypeName)) {