Udostępnij za pośrednictwem


LocalMessageReceiver Class

Microsoft Silverlight will reach end of support after October 2021. Learn more.

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

Inheritance Hierarchy

System.Object
  System.Windows.Messaging.LocalMessageReceiver

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

Syntax

'Declaration
Public NotInheritable Class LocalMessageReceiver _
    Implements IDisposable
public sealed class LocalMessageReceiver : IDisposable

The LocalMessageReceiver type exposes the following members.

Constructors

  Name Description
Public method LocalMessageReceiver(String) Initializes a new instance of the LocalMessageReceiver class and configures it with the specified name.
Public method LocalMessageReceiver(String, ReceiverNameScope, IEnumerable<String>) Initializes a new instance of the LocalMessageReceiver class and configures it with the specified name, namescope requirement, and allowed sender domains.

Top

Properties

  Name Description
Public property AllowedSenderDomains Gets the domains that the receiver can receive messages from.
Public property DisableSenderTrustCheck Gets or sets a value that indicates whether the receiver can receive messages from a sender with a different Protected Mode setting.
Public property NameScope Gets a value that indicates whether the ReceiverName is scoped to the global namescope or to the receiver's specific domain.
Public property ReceiverName Gets the name of the receiver.

Top

Methods

  Name Description
Public method Dispose Stops the receiver from receiving messages and releases all resources used by the receiver.
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method Listen Starts listening for messages from a LocalMessageSender.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)

Top

Events

  Name Description
Public event MessageReceived Occurs when a message is received from a LocalMessageSender.

Top

Fields

  Name Description
Public fieldStatic member AnyDomain A value that represents any domain.

Top

Remarks

A LocalMessageReceiver object can receive messages from a LocalMessageSender 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.Controls
Imports System.Windows.Messaging

Partial Public Class Receiver
    Inherits UserControl

    Public Sub New()

        InitializeComponent()

        Dim messageReceiver As New LocalMessageReceiver("receiver", _
            ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain)
        AddHandler messageReceiver.MessageReceived, _
            AddressOf messageReceiver_MessageReceived

        Try

            messageReceiver.Listen()

        Catch ex As ListenFailedException

            output.Text = "Cannot receive messages." & Environment.NewLine & _
                "There is already a receiver with the name 'receiver'."

        End Try

    End Sub

    Private Sub messageReceiver_MessageReceived( _
        ByVal sender As Object, ByVal e As MessageReceivedEventArgs)

        e.Response = "response to " & e.Message
        output.Text = _
            "Message: " & e.Message & Environment.NewLine & _
            "NameScope: " & e.NameScope.ToString() & Environment.NewLine & _
            "ReceiverName: " & e.ReceiverName & Environment.NewLine & _
            "SenderDomain: " & e.SenderDomain & Environment.NewLine & _
            "Response: " & e.Response

    End Sub

End Class
using System;
using System.Windows.Controls;
using System.Windows.Messaging;

namespace ReceivingApplication
{
    public partial class Receiver : UserControl
    {
        public Receiver()
        {
            InitializeComponent();

            LocalMessageReceiver messageReceiver =
                new LocalMessageReceiver("receiver",
                ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain);
            messageReceiver.MessageReceived += messageReceiver_MessageReceived;
            try
            {
                messageReceiver.Listen();
            }
            catch (ListenFailedException)
            {
                output.Text = "Cannot receive messages." + Environment.NewLine +
                    "There is already a receiver with the name 'receiver'.";
            }
        }

        private void messageReceiver_MessageReceived(
            object sender, MessageReceivedEventArgs e)
        {
            e.Response = "response to " + e.Message;
            output.Text =
                "Message: " + e.Message + Environment.NewLine +
                "NameScope: " + e.NameScope + Environment.NewLine +
                "ReceiverName: " + e.ReceiverName + Environment.NewLine +
                "SenderDomain: " + e.SenderDomain + Environment.NewLine +
                "Response: " + e.Response;
        }
    }
}

Version Information

Silverlight

Supported in: 5, 4, 3

Platforms

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

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.