0
我有一個父級抽象服務,有自己的接口。如何使用構造函數參數註冊繼承服務?
public interface IParentService
{
void ParentMethod(object parameter);
}
public abstract class ParentService : IParentService
{
protected object _parameter;
public void ParentMethod() {}
public ParentService(object parameter)
{
_parameter = parameter;
}
}
而且我n
服務繼承它,看起來像這樣:
public interface INthChildService
{
void NthChildMethod();
}
public class NthChildService : ParentService, INthChildService
{
public void NthChildMethod() {}
public NthChildService(object parameter) : base(parameter) {}
}
我怎樣才能在服務定位器註冊自己的類型,同時保持構造函數的參數?可能嗎?
這裏是我的嘗試沒有成功,給我TypeNotRegisteredException : 'MyNamespace.INthChildService' is not registered or could not be constructed
:
var serviceLocator = ServiceLocator.Default;
serviceLocator.RegisterType<IParentService, ParentService>();
serviceLocator.RegisterType<INthChildService, NthChildService>();
而作爲一個額外的評論,你可以這樣做既自定義參數,並自動完成其他服務相結合: _typeFactory.CreateInstanceWithParametersAndAutoCompletion(參數); –
2015-02-06 11:01:23
有趣的是,在這種情況下,自動補全意味着什麼? – Kilazur 2015-02-06 11:05:41
如果您添加服務定位器中的其他參數,它們將自動追加。所以你可以有NthChildService(FirstObject obj,IRegisteredType1 type1,IRegisteredType2 type2等) – 2015-02-06 12:32:17