En C #, ¿hay una manera de escribir inicializadores de objetos personalizados para nuevos tipos de datos?

En C #, existe la técnica de inicialización "estándar" {Property1 = "a", Property2 = "b"}, y hay un par de variantes especiales para las colecciones (lista y diccionario). {valor1, valor2}, y {{"clave1", valor1}, {"clave2", valor2}}.

Me gustaría tener un inicializador de objeto recursivo para un tipo de datos de árbol, pero no sé si hay alguna forma de personalizar ese mecanismo. Me gustaría algo que parece una s-expresión. {item1 {item2 item3 item4} {item5 item6}}

Lo hago a través de constructores, pero me gustaría una sintaxis terser.

Respuestas a la pregunta(3)

Su respuesta a la pregunta