【发布时间】:2012-02-22 14:17:01
【问题描述】:
我创建了一个自定义会员提供程序
public class MyMembership : MembershipProvider
{
private IRepository<User> Repo;
}
我想出了如何使用 autofac 注入 MyMembership:
builder.Register(c => Membership.Provider);
但是,如果我有一个采用 IRepository 的构造函数(它只调用无参数构造函数),这将不起作用。我尝试从私有字段更改为公共属性并调用:
builder.Register(c => Membership.Provider).AutoWireProperties();
问题是,MembershipProvider 没有 Repo 属性,它只是我的类。
目前,我没有注入任何东西,只是创建了一个空的构造函数,我只是在其中创建了我的 Repo 的一个新实例。但这让测试变得更加困难。
那么,有什么方法可以使用 AutoFac 来注入我的 MyMembership,并让它使用注入的 Repo?
【问题讨论】:
-
如何从 Membership 子类化?该类是静态的。
-
我的错,它是 MembershipProvider,而不是我从中派生的 Membership。好收获@Jehof
-
我有一个自定义会员提供程序类,我希望 Autofac 将其解析为 Membership.Provider,该怎么做?