Null - это особый случай, так как мы не можем получить тип из константы с типом null (он просто поступает через компилятор как объект типа). Так что если не написать маленькую вспомогательную функцию / класс, да, это так коротко, как только может.
Я мог бы написать что-то вроде этого:
public static class NullParam
{
public InjectionParameter OfType<T>()
where T : class
{
return new InjectionParameter<T>(null);
}
}
Тогда вы могли бы написать выше как:
container.RegisterType<ISomething, Something>(
new InjectionConstructor(
NullParam.OfType<string>, typeof(ISomethingHelper), typeof(ISomethingManager)));
Я не уверен, что это достаточно короче, чтобы стоило представить помощника.
API Unity разработан с учетом регулярности и расширяемости, а не краткости или удобства. Это делает некоторые вещи более многословными, чем было бы идеально. Приятно то, что довольно легко написать маленькие обертки и помощники, чтобы регистрационный код выглядел так, как вы хотите.