/// <summary>
        /// Registers an object for message handling
        /// </summary>
        /// <typeparam name="TMessage">message type</typeparam>
        /// <param name="injectionScope"></param>
        /// <param name="injectionContext"></param>
        /// <param name="injectionTaget"></param>
        /// <param name="messageHandlerInfo"></param>
        /// <param name="token"></param>
        /// <param name="holdRefernce"></param>
        /// <param name="background"></param>
        public static void RegisterMethodAsMessageHandler <TMessage>(IInjectionScope injectionScope,
                                                                     IInjectionContext injectionContext,
                                                                     object injectionTaget,
                                                                     MethodInfoWrapper messageHandlerInfo,
                                                                     object token,
                                                                     bool holdRefernce,
                                                                     bool background)
        {
            Action <TMessage> messageHandler = (Action <TMessage>)messageHandlerInfo.MethodInfo.CreateDelegate(typeof(Action <TMessage>), injectionTaget);

            IDispatchedMessenger messenger = injectionScope.Locate <IDispatchedMessenger>();

            if (messenger == null)
            {
                throw new Exception("Attempting to register handler " + messageHandlerInfo.MethodInfo.Name + " and could not locate IDispatchedMessenger");
            }

            messenger.Register(messageHandler, token, holdRefernce, background);
        }
예제 #2
0
 public SecondWindowViewModel(IDispatchedMessenger dispatchedMessenger)
 {
     _dispatchedMessenger = dispatchedMessenger;
 }