Skip to content

Instantly share code, notes, and snippets.

@msciborski
Created June 24, 2020 17:26
Show Gist options
  • Save msciborski/d6085e5a5cfc560d23d1d7c5ea80cab3 to your computer and use it in GitHub Desktop.
Save msciborski/d6085e5a5cfc560d23d1d7c5ea80cab3 to your computer and use it in GitHub Desktop.
public class ApplicationModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder
.RegisterModule<AttributedMetadataModule>();
builder.Register<SenderFactory>(c =>
{
var context = c.Resolve<IComponentContext>();
return (client) =>
{
var sender = context.Resolve<IEnumerable<Meta<ISender, ClientMetadataAttribute>>>()
.First(x => x.Metadata.Client == client).Value;
return sender;
};
});
builder
.RegisterType<EmailSender>()
.As<ISender>();
builder
.RegisterType<SmsSender>()
.As<ISender>()
.WithMetadata("Client", "sms");
base.Load(builder);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment