kreta/Kreta.MessageBroker/ClientFactory/JsonMessageClientFactory.cs
2024-03-13 00:33:46 +01:00

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
}
}