我的解决方案中有一个3项目: 便携式图书馆(适用于ios,Android和winphones),图书馆项目(适用于Windows手机)和Windows手机测试项目。我的图书馆项目参考了便携式图书馆项目,我的windows phone测试项目参考了便携式和winphone库项目。在我的便携式库项目中,我得到了一些我在库winphone项目中实现的服务接口。在我的便携式项目中,我希望有一些类具有我在windows phone库中实现的服务字段,并在windows phone测试项目中使用此类。要做到这一点,我尝试使用Autofac库,在我的Windows手机库中注册类型(为此我用静态ctor创建类)并尝试解析我在我的Windows手机库中注册的便携式库类中的服务,但我得到了null异常,我不知道如何解决这个问题,并且可以做我实际尝试做的事情?
我的类来自可移植库项目,在调用Resolve方法之后我会异常。
public IDeviceInformation DeviceInformation { get; }
public Logger()
{
DeviceInformation = AutofacContainer.Instance.Resolve<IDeviceInformation>();
}
来自图书馆项目的课程
public class AutoFacRegister
{
static AutoFacRegister()
{
var builder = new ContainerBuilder();
builder.RegisterType<WindowsDeviceInformation>()
.As<IDeviceInformation>();
AutofacContainer.Instance = builder.Build();
}
}
答案 0 :(得分:0)
我建议不要使用static
构造函数来创建容器。我怀疑构造函数从未被调用,因为AutoFacRegister
类没有在任何地方使用,因此AutofacContainer.Instance
将始终为null。
我建议您使用modules来实现目标。