Catel.Xamarin.Forms.MessagingCenter.Send C# (CSharp) Method

Send() private static method

Sends the specified type of sender.
The is null. The is null. The is null.
private static Send ( object sender, Type typeOfSender, string message, IArgumentsProxy argumentsProxy ) : TaskCompletionSource
sender object The sender.
typeOfSender System.Type The type of sender.
message string The message.
argumentsProxy IArgumentsProxy The arguments proxy.
return TaskCompletionSource
        private static TaskCompletionSource<bool> Send(object sender, Type typeOfSender, string message, IArgumentsProxy argumentsProxy)
        {
            Argument.IsNotNull(() => sender);
            Argument.IsNotNull(() => typeOfSender);
            Argument.IsOfType(() => sender, typeOfSender);
            Argument.IsNotNull(() => argumentsProxy);

            var type = typeof(global::Xamarin.Forms.MessagingCenter);
            //// TODO: Use reflection API instead but reflection API requires some fixes.
            var methodInfo = type.GetRuntimeMethods().FirstOrDefault(info => info.Name == "Send" && info.GetGenericArguments().Length == 2 && info.GetParameters().Length == 3);
            var makeGenericMethod = methodInfo.MakeGenericMethod(typeof(Page), argumentsProxy.InternalType);
            makeGenericMethod.Invoke(type, new[] { sender, message, argumentsProxy.Object });

            return argumentsProxy.Result;
        }
MessagingCenter