LocalMessageSender Class Home
.NET Framework Class Library for Silverlight
LocalMessageSender Class

[Note: This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

Represents the sending end of a local messaging channel between two Silverlight-based applications.

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

'Usage

Dim instance As LocalMessageSender

'Declaration

Public NotInheritable Class LocalMessageSender
Remarks

A LocalMessageSender object can send messages to a LocalMessageReceiver object in a different Silverlight-based application running on the same computer. For information about using these classes, see Communication Between Local Silverlight-Based Applications.

Examples

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

Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Messaging

Partial Public Class Sender
    Inherits UserControl

    Private messageSender As LocalMessageSender

    Public Sub New()

        InitializeComponent()
        UpdateButton()
        messageSender = New LocalMessageSender( _
            "receiver", LocalMessageSender.Global)
        AddHandler messageSender.SendCompleted, _
            AddressOf sender_SendCompleted
        SendMessage("message from Sender constructor")

    End Sub

    Private clickNumber As Integer = 1

    Private Sub UpdateButton()
        button.Content = "send message 'click " & clickNumber & "'"
    End Sub

    Private Sub Button_Click(ByVal sender As Object, _
        ByVal e As RoutedEventArgs)

        SendMessage("click " & clickNumber)
        clickNumber += 1
        UpdateButton()

    End Sub

    Private Const MAX_ATTEMPTS As Integer = 10000
    Private attempt As Integer = 1

    Private Sub SendMessage(ByVal message As String)
        messageSender.SendAsync(message, attempt)
    End Sub

    Private Sub sender_SendCompleted(ByVal sender As Object, _
        ByVal e As SendCompletedEventArgs)

        If e.Error IsNot Nothing Then

            LogError(e)
            attempt += 1
            If attempt > MAX_ATTEMPTS Then
                output.Text = "Could not send message."
                Return
            End If
            SendMessage(e.Message)
            Return

        End If

        output.Text = _
            "Message: " & e.Message & Environment.NewLine & _
            "Attempt " & CType(e.UserState, Integer) & _
            " completed." & Environment.NewLine & _
            "Response: " & e.Response & Environment.NewLine & _
            "ReceiverName: " & e.ReceiverName & Environment.NewLine & _
            "ReceiverDomain: " & e.ReceiverDomain

        ' Reset attempt counter.
        attempt = 1

    End Sub

    Private Sub LogError(ByVal e As SendCompletedEventArgs)
        System.Diagnostics.Debug.WriteLine( _
            "Attempt number {0}: {1}: {2}", CType(e.UserState, Integer), _
            e.Error.GetType().ToString(), e.Error.Message)
    End Sub

End Class


Inheritance Hierarchy

System..::.Object
  System.Windows.Messaging..::.LocalMessageSender
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Platforms

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

See Also

Reference

Other Resources

© 2009 Microsoft Corporation. All rights reserved.   Terms of Use | Trademarks | Privacy Statement
Page view tracker
Rate the Lightweight library
x
Lightweight builds on ScriptFree (loband) by adding features you've requested: a SearchBox and default code language selection.
Do you like the SearchBox?
Do you like the tabbed code blocks?
How useful is this topic?
Tell us more.
Thanks
x
You're helping to improve MSDN Online.
Feedback
Switch View
Classic
Lightweight Beta
ScriptFree
Switch View