我对Autofac非常陌生,无法理解注册的语法。我有以下calsses /接口:Autofac - 注册以接口为参数的实例类型
//Interface
public interface ISender
{
void Send();
}
//implementations
public class Post : ISender
{
public void Send()
{
//Post implementation
}
}
public class Email : ISender
{
public void Send()
{
//Email implementation
}
}
以及调用这些实现现在
public class Consumer
{
ISender Sender;
public Consumer(ISender sender)
{
Sender = sender
}
public void Act()
{
Sender.Send();
}
}
一类,它实现调用是在一个控制器来决定,所以我尝试使用IIndex从this page像:
public calss PostController
{
Consumer ConsumerObject;
public PostController(IIndex<string, Consumer> consumer)
{
ConsumerObject = consumer["post"];
}
}
public class EmailController
{
Consumer ConsumerObject;
public PostController(IIndex<string, Consumer> consumer)
{
ConsumerObject = consumer["email"];
}
}
首先,它是正确的还是可行的?现在的问题是我不明白如何注册Autofac。那么,我们如何在Autofac中注册Consumer和ISender?请建议是否有更好的/替代方法。