예제 #1
0
        static void Main(string[] args)
        {
            var       request  = new MyRequest();
            IMediator mediator = new Mediator();

            var type   = request.GetType();
            var method = mediator.GetType().GetMethod("Send");

            var responseType = type.GetInterfaces()
                               .Single(i => i.GetGenericTypeDefinition() == typeof(IRequest <>))
                               .GetGenericArguments()
                               .Single();

            var generic = method.MakeGenericMethod(responseType);
            //Exception
            var response = generic.Invoke(mediator, new object[] { request });
        }