Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="Chinchilla Software Limited">
4 : // // Copyright Chinchilla Software Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System;
10 : using System.ServiceModel;
11 : using Cqrs.Messages;
12 :
13 : namespace Cqrs.Bus
14 : {
15 : /// <summary>
16 : /// Registers event or command handlers that listen and respond to events or commands.
17 : /// </summary>
18 : [ServiceContract(Namespace = "https://getcqrs.net/Bus/HandlerRegistrar")]
19 : public interface IHandlerRegistrar
20 : {
21 : /// <summary>
22 : /// Register an event or command handler that will listen and respond to events or commands.
23 : /// </summary>
24 : /// <remarks>
25 : /// In many cases the <paramref name="targetedType"/> will be the handler class itself, what you actually want is the target of what is being updated.
26 : /// </remarks>
27 : [OperationContract]
28 1 : void RegisterHandler<TMessage>(Action<TMessage> handler, Type targetedType, bool holdMessageLock = true)
29 : where TMessage : IMessage;
30 :
31 : /// <summary>
32 : /// Register an event or command handler that will listen and respond to events or commands.
33 : /// </summary>
34 : [OperationContract]
35 1 : void RegisterHandler<TMessage>(Action<TMessage> handler, bool holdMessageLock = true)
36 : where TMessage : IMessage;
37 : }
38 : }
|