private void RegisterInstance(MethodInfo method, object instance, string alias) { var registration = new MethodRegistration { RegisteredName = alias ?? method.Name, MethodInfo = method }; if (!method.IsStatic) { registration.Activator = () => instance; } _registry.Add(registration.RegisteredName, registration); }
private void RegisterActivator(Type type, MethodInfo method, ConstructorInfo defaultConstructor, string alias) { if (!method.IsStatic && defaultConstructor == null) { throw new RpcRegistrationException($"Failed to register a non static method on a type without a default constructor. Either provide a public default constructor on type '{type.FullName}' or register an instance of the type instead."); } var registration = new MethodRegistration { RegisteredName = alias ?? method.Name, MethodInfo = method }; if (!method.IsStatic) { registration.Activator = () => defaultConstructor.Invoke(null); } _registry.Add(registration.RegisteredName, registration); }