autofac baseclass property is null
这是我使用 Asp.Net Mvc 3 的设置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | public abstract class BaseProvider { protected ICache Cache; } public interface ICache { void Add(string key, object data); void Remove(string key); ... } public class MyCache : ICache { private static MemoryCache cache = MemoryCache.Default; void Add(string key, object data) { ... } } public interface IEmployeeProvider { IEnumerable<Employee> GetEmployees(string department); } public class EmployeeProvider:BaseProvider,IEmployeeProvider { public IEnumerable<Employee> GetEmployees(string department) { **if (Cache.Get("employees_"+department)!=null)** } } |
加星标的行抛出一个错误,指出 Cache 为空。
我试图将基类注册为一种类型,但我想这是错误的。
我的 Autofac 设置是这样的:
1 2 3 | builder.Register(r => new EmployeeProvider()).As<IEmployeeProvider>().InstancePerHttpRequest(); builder.Register(r => new MyCache()).As<ICache>().InstancePerHttpRequest(); builder.RegisterType<BaseProvider>().PropertiesAutowired(); |
我错过了什么?
您应该使用
第一次注册忘记了