我有以下登記:類型不解決
builder.RegisterAssemblyTypes(AssemblyUtils.GetAllAssemblies())
.Where(t => typeof(IReadModelService).IsAssignableFrom(t) ||
typeof(IDatabaseRepository).IsAssignableFrom(t))
.AsImplementedInterfaces()
.InstancePerDependency()
.PropertiesAutowired();
哪些寄存器以下類型:
public class DeviceReadModelService : IDeviceReadModelService
{
public DeviceReadModelService(ReadModelsSettings dd)
{ }
}
而且該位註冊一個實例:
builder.RegisterInstance(JsonConvert.DeserializeObject(File.ReadAllText(configFilePath), typeof(ReadModelsSettings)))
.As<ReadModelsSettings>();
而且這是我遇到的問題。
如果我試圖解決類型ReadModelsSettings它正常工作,但如果我嘗試解決IDeviceReadModelService它失敗,它基本上說,即使我可以在註冊列表中註冊ReadModelsSettings。
container.Resolve<ReadModelsSettings>(); -- works
container.Resolve<IDeviceReadModelService>(); --fails
任何想法是什麼問題?
UPDATE
只是把它清除掉,但我改變DeviceReadModelService來實現:
public class DeviceReadModelService : IDeviceReadModelService
{
public DeviceReadModelService()
{ }
}
這兩種類型都解決了。
是否手工登記工作,如果你刪除自動登記?例如,'builder.RegisterType()。作爲()' –
Win
@win如果我手動註冊它確實工作...不能真正理解什麼是通用代碼的問題,因爲我仍然可以看到已註冊的類型。 – Marco