Home
Ivan edited this page Sep 2, 2020
·
13 revisions
var dependencyProvider = new DependencyCollection()
.AddLogger() // log service
.AddSettings() // configuration from files and command line
.AddMapper() // simple mapper for map property to property
.AddEmitter() // mediator or CQRS pattern implementation
.AddJson() // simple json de/serializer
.BuildProvider() // dependency injection
var dependencies = new DependencyCollection()
.AddSingleton<IFooRepository, FooRepository>()
.AddScoped<BooService>();
Read more about dependency injection here.
var logger = _dependencyProvider.GetService<ILogger<MyClass>>(); // logger for a sender
logger.Warning("My warning message with {arg1}, {arg2} and structure logging", arg1, arg2);
Read more about logging here.
var mySettings = dependencyProvider.Get<MySettings>(); // from your own file
Read more about settings here.
var mapper = dependencyProvider.Get<IMapper<Boo>>(); // as singleton in the runtime
var boo = mapper.Map(foo);
var mediator = dependencyProvider.Get<IEmitter>();
var answer = await mediator.Ask<Foo>(query); // ask question and receive answer
await mediator.Execute(command); // execute command
await mediator.Publish(notification); // publish notification
Read more about CQRS here.
var jsonConverter = dependencyProvider.Get<JConverter>();
var deserialized = jsonConverter.Deserialize<Foo>("{ ... }"); // deserialization
var serialized = jsonConverter.Serialize(deserialized); // serialization