билдится на старом дотнете

This commit is contained in:
2025-02-20 16:10:09 +03:00
parent 5af9408a9a
commit 50fd3e7b73
69 changed files with 1990 additions and 1675 deletions
@@ -1,40 +1,42 @@
using mROA.Abstract;
using System;
using mROA.Abstract;
namespace mROA.Implementation;
public class CreativeRepresentationModuleProducer : IRepresentationModuleProducer
namespace mROA.Implementation
{
private Type _reprModuleType;
private IInjectableModule[] _creationModules;
private IConnectionHub? _hub;
public CreativeRepresentationModuleProducer(IInjectableModule[] creationModules, Type reprModuleType)
public class CreativeRepresentationModuleProducer : IRepresentationModuleProducer
{
_creationModules = creationModules;
_reprModuleType = reprModuleType;
}
private Type _reprModuleType;
private IInjectableModule[] _creationModules;
private IConnectionHub? _hub;
public CreativeRepresentationModuleProducer(IInjectableModule[] creationModules, Type reprModuleType)
{
_creationModules = creationModules;
_reprModuleType = reprModuleType;
}
public void Inject<T>(T dependency)
{
if (dependency is IConnectionHub interactionModule)
_hub = interactionModule;
}
public void Inject<T>(T dependency)
{
if (dependency is IConnectionHub interactionModule)
_hub = interactionModule;
}
public IRepresentationModule Produce(int id)
{
if (_hub == null)
throw new NullReferenceException("Interaction module is null");
public IRepresentationModule Produce(int id)
{
if (_hub == null)
throw new NullReferenceException("Interaction module is null");
var produced =
Activator.CreateInstance(_reprModuleType) as IRepresentationModule ??
throw new Exception("Bad serialization module type");
var produced =
Activator.CreateInstance(_reprModuleType) as IRepresentationModule ??
throw new Exception("Bad serialization module type");
foreach (var creationModule in _creationModules)
produced.Inject(creationModule);
foreach (var creationModule in _creationModules)
produced.Inject(creationModule);
produced.Inject(_hub.GetInteracion(id));
produced.Inject(_hub.GetInteracion(id));
return produced;
return produced;
}
}
}