Export (0) Print
Expand All

LocalMessageSender Constructor (String, String)

Silverlight

Initializes a new instance of the LocalMessageSender class and configures it to send messages to the receiver with the specified name and domain.

Namespace:  System.Windows.Messaging
Assembly:  System.Windows (in System.Windows.dll)

public LocalMessageSender(
	string receiverName,
	string receiverDomain
)

Parameters

receiverName
Type: System.String
The ReceiverName property value of the LocalMessageReceiver that this sender will send messages to.
receiverDomain
Type: System.String
The domain of the LocalMessageReceiver that this sender will send messages to, or Global if the receiver is not scoped to a domain.

ExceptionCondition
ArgumentNullException

receiverName is null.

-or-

receiverDomain is null.

ArgumentException

receiverName is longer than 256 characters.

-or-

receiverDomain is longer than 256 characters.

-or-

receiverDomain contains one or more invalid characters ("," and ":").

This constructor enables you to initialize the ReceiverName and ReceiverDomain values.

For more information, see Communication Between Local Silverlight-Based Applications.

The following code example demonstrates how to use this constructor. This example is part of a larger example available in How to: Implement Communication Between Local Silverlight-Based Applications.


using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Messaging;

namespace SendingApplication
{
    public partial class Sender : UserControl
    {
        private LocalMessageSender messageSender;

        public Sender()
        {
            InitializeComponent();
            UpdateButton();
            messageSender = new LocalMessageSender(
                "receiver", LocalMessageSender.Global);
            messageSender.SendCompleted += sender_SendCompleted;
            SendMessage("message from Sender constructor");
        }

        private int clickNumber = 1;

        private void UpdateButton()
        {
            button.Content = "send message 'click " + clickNumber + "'";
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            SendMessage("click " + clickNumber);
            clickNumber++;
            UpdateButton();
        }

        private const int MAX_ATTEMPTS = 10000;
        private int attempt = 1;

        private void SendMessage(string message)
        {
            messageSender.SendAsync(message, attempt);
        }

        private void sender_SendCompleted(object sender, SendCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                LogError(e);
                attempt++;
                if (attempt > MAX_ATTEMPTS)
                {
                    output.Text = "Could not send message.";
                    return;
                }
                SendMessage(e.Message);
                return;
            }

            output.Text =
                "Message: " + e.Message + Environment.NewLine +
                "Attempt " + (int)e.UserState + 
                " completed." + Environment.NewLine +
                "Response: " + e.Response + Environment.NewLine +
                "ReceiverName: " + e.ReceiverName + Environment.NewLine + 
                "ReceiverDomain: " + e.ReceiverDomain;

            // Reset attempt counter.
            attempt = 1;
        }

        private void LogError(SendCompletedEventArgs e)
        {
            System.Diagnostics.Debug.WriteLine(
                "Attempt number {0}: {1}: {2}", (int)e.UserState, 
                e.Error.GetType().ToString(), e.Error.Message);
        }

    }
}


Silverlight

Supported in: 5, 4, 3

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2015 Microsoft