AutoFacを使用して依存関係を解決しようとしていますが、次のような例外がスローされます
要求されたサービス 'ProductService'は登録されていません。この例外を回避するには、サービスを提供するコンポーネントを登録するか、IsRegistered()...を使用します
class Program
{
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterType<ProductService>().As<IProductService>();
using (var container = builder.Build())
{
container.Resolve<ProductService>().DoSomething();
}
}
}
public class ProductService : IProductService
{
public void DoSomething()
{
Console.WriteLine("I do lots of things!!!");
}
}
public interface IProductService
{
void DoSomething();
}
私が間違ったことは何ですか?
次のステートメントで:
builder.RegisterType<ProductService>().As<IProductService>();
誰かがIProductService
を解決しようとするたびにAutofacにProductService
を伝えた
したがって、IProductService
とProductService
を解決する必要があります。
using (var container = builder.Build())
{
container.Resolve<IProductService>().DoSomething();
}
または、Resolve<ProductService>
AsSelfに登録します。
builder.RegisterType<ProductService>().AsSelf();