1
我們在代碼中使用了很多泛型。例如ICommandHandler<T> where T is ICommand
,ICommandValidator<T>
等等可能將NullObject實現註冊爲泛型接口的後備?
並非所有的東西都有ICommandValidator實現。我正在尋找使用NullObject模式,以便我可以提供回退選項以避免必須測試驗證程序是否爲空。
例如
public class NullObjectCommandValidator : ICommandValidator<ICommand>
{
public bool IsValid(ICommand command)
{
return true;
}
}
我們註冊都喜歡:
builder.RegisterAssemblyTypes(assemblies)
.AsClosedTypesOf(typeof(ICommandValidator<>))
.InstancePerHttpRequest();
我希望能夠註冊NullObjectCommandValidator作爲任何ICommandValidator默認未使用有一個具體的實施例如註冊所有其他ICommandValidator>,然後在最後註冊Null版本並保留現有默認值。
是這樣的可能嗎?
真棒。現在我可以殺了一堆if語句:) – GraemeMiller 2013-05-09 17:58:26