34 lines
943 B
C#
34 lines
943 B
C#
using System;
|
|
using Kreta.Core.MessageBroker;
|
|
using Kreta.Core.MessageBroker.Client.Implementations;
|
|
|
|
namespace Kreta.MessageBroker.ClientFactory
|
|
{
|
|
internal abstract class JsonMessageClientFactory<T> : IJsonMessageClientFactory<T>
|
|
where T : class
|
|
{
|
|
#region [Properties]
|
|
|
|
private IMessageClientFactory<string> NativeMessageClientFactory { get; }
|
|
|
|
#endregion
|
|
|
|
#region [Public methods]
|
|
|
|
public IMessageClient<T> Create(string name)
|
|
{
|
|
return new JsonMessageClient<T>(this.NativeMessageClientFactory.Create(name));
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region [Constructors]
|
|
|
|
public JsonMessageClientFactory(IMessageClientFactory<string> nativeMessageClientFactory)
|
|
{
|
|
this.NativeMessageClientFactory = nativeMessageClientFactory ?? throw new ArgumentNullException(nameof(nativeMessageClientFactory));
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|