Если я правильно понял и вы хотите определить свойства во время выполнения, это невозможно. Хотя в анонимных типах вы можете создавать типы, которые вы тут же определяете, присваивая значения, имя свойств должно быть известно в время компиляции .
Фактически, тип анонимен для вас, но не для CLR . Если вы посмотрите на сборку в ildasm.exe или рефлекторе, вы увидите эти анонимные типы со странными именами, в именах которых всегда стоит <>
.
C # может помочь здесь динамикой, но, насколько мне известно, они помогают с связью с объектами, для которых у нас нет информации о типе, не создаются, но может быть что я не знаю.