我也收到以下错误。这是因为它不是List,如果是,我该怎么纠正呢?
container.RegisterCollection<IPaymentMethod>(new[]
{
typeof(AuthorizeNetProvider),
typeof(StripeProvider),
typeof(PayPalProProvider),
typeof(PayPalStandardProvider),
typeof(IntuitProvider),
typeof(UsaEpayProvider),
typeof(ITransactProvider),
typeof(SecureNetProvider),
typeof(ExposurePayProvider),
typeof(PayTraceProvider),
typeof(BraintreeProvider)
});
错误
配置无效。为类型IDivisionsService创建实例失败。 PaymentManager类型的构造函数包含名称为&#39; paymentMethods&#39;的参数。并输入List&lt; IPaymentMethod&gt;那是没有注册的。请确保列出&lt; IPaymentMethod&gt;已注册,或更改PaymentManager的构造函数。
构造器
public PaymentManager(List<IPaymentMethod> paymentMethods)
{
_paymentMethods = paymentMethods;
}
答案 0 :(得分:0)
List<T>
currently不支持作为集合类型。将构造函数更改为以下之一:
IEnumerable<T>
IList<T>
ICollection<T>
IReadOnlyList<T>
IReadOnlyCollection<T>
前5种类型具有以下行为:
IList<T>
和ICollection<T>
中的实例将失败,但会有例外。最后一个类型(数组)始终表示实例的副本,并且不会表现为流。因为它是一个可变的实例列表,所以数组总是被注入Transient
,即使它的依赖项列表都代表Singleton
个实例。