[英]How to register a type whose constructor takes a Func parameter in Autofac
我有一個帶有構造函數的類,該構造函數接受需要在Autofac中注冊的Func參數。
這是定義類的方式:
public class MyClass : IMyClass
{
private Func<Task<IProvider<string, object>>> _provider;
public MyClass(Func<Task<IProvider<string, object>>> provider)
{
_provider = provider;
}
...
}
如何在Autofac上注冊該課程?
我嘗試了以下方法:
builder.RegisterType<MyClass>()
.As<IMyClass>()
.InstancePerLifetimeScope()
.WithParameter("provider", MyProviderFunc);
但這會導致以下編譯錯誤:
cannot convert from 'method group' to 'object'
這是MyProviderFunc的定義:
private static Task<ICRUDProvider<string, object>> MyProviderFunc()
{
...
}
您需要將方法組顯式轉換為委托類型(否則,編譯器不知道您想要哪個委托):
.WithParameter("provider", new Func<Task<IProvider<string, object>>>(MyProviderFunc));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.