我有一個類如下,其構造函數接受兩個List<T>
如何解決具有List <T>參數的構造函數的類?
public class Param<T>
{
public List<T> Joes { get; }
public List<T> Dans { get; }
public Param(List<T> joes, List<T> dans)
{
Joes = joes;
Dans = dans;
}
}
我嘗試註冊和解析這個對象,
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterType<int>().As<object>();
builder.RegisterGeneric(typeof(Param<>));
var container = builder.Build();
var paramHaha = container.Resolve<Param<object>>();
}
我得到這個例外
錯誤發生在特定註冊的激活期間。 有關詳細信息,請參閱內部例外。註冊:Activator = Param'1 (ReflectionActivator),Services = [ConsoleApplication2.Param'1 [[System.Int32,mscorlib,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = b77a5c561934e089]]],Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime,Sharing = None,所有權 = OwnedByLifetimeScope --->在類型 'ConsoleApplication2.Param'1 [System.Int32'找到'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'時沒有找到構造函數]'可用 可用服務和參數調用:\ r \ n無法解析參數 'System.Collections.Generic.List'1 [System.Int32] joes'of constructor 'Void .ctor(System.Collections.Generic .List'1 [System.Int32], System.Coll ections.Generic.List'1 [System.Int32])」。 (見內 異常的詳細信息。)「}
我怎樣才能解決這個問題呢?我真的不關心什麼是我得到Param
對象,我不關心什麼T
是該Param
只是在其他地方使用的虛擬對象,但我需要得到它正確初始化
應該爲'joes'和'dans'注入什麼?隨機列表? –
@YacoubMassad,是的。 – Graviton
如果你不在意爲這兩個列表注入什麼 - 只需爲該Param創建無參數構造函數。 – Evk