Я не уверен, что понимаю ваш вопрос; то, что вы написали выше, похоже, должно работать нормально. Если вы спросите, где положить остальную логику конструктора, попробуйте следующее:
type SharedRegistry(useCache) as this =
inherit PageRegistry(useCache)
do
this.ForRequestedType<IAddressRepository>().TheDefaultIsConcreteType<SqlAddressRepository>()
// etc.
new() = SharedRegistry(true)
Если вы хотите определить каждый конструктор отдельно, вы также можете это сделать:
type SharedRegistry =
inherit PageRegistry
new(useCache) as this =
{ inherit PageRegistry(useCache) } then
this.ForRequestedType<IAddressRepository>().TheDefaultIsConcreteType<SqlAddressRepository>()
// etc.
new() = SharedRegistry(true)
Или вы можете использовать необязательный аргумент для вашего основного конструктора:
type SharedRegistry(?useCache) as this =
inherit PageRegistry(defaultArg useCache true)
do
this.ForRequestedType<IAddressRepository>().TheDefaultIsConcreteType<SqlAddressRepository>()
// etc.