Tworzysz tutaj coś, co nazywa się typem anonimowym, a nie dynamicznym.
Niestety nie ma sposobu, aby osiągnąć to, co próbujesz zrobić. Typy anonimowe mają być bardzo prostym rodzajem niezmiennym, składającym się z par nazwa/wartość.
Tylko wersja anonimowa typu C# umożliwia dostosowanie zestawu par nazwa/wartość do typu bazowego. Nic więcej. VB.Net umożliwia nieco więcej personalizacji, ponieważ pary mogą być zmienne lub niezmienne. Nie zezwala się jednak na rozszerzanie typu za pomocą atrybutów.
Jeśli chcesz dodać atrybuty, musisz utworzyć pełny typ.
EDYCJA OP zapytał, czy można dodać atrybuty za pomocą odbicia.
Nie można tego zrobić. Odbicie jest sposobem sprawdzania metadanych, które nie powodują mutacji. Dlatego nie można go używać do dodawania atrybutów.
Ponadto, należy definiować definicje w złożeniu i ogólnie rzecz biorąc, są niezmienne i nie można ich zmutować w czasie wykonywania [1]. Obejmuje to dodanie atrybutów do metody. Dlatego też nie można tu zastosować innych technologii podobnych do refleksji.
[1] Jedynym wyjątkiem od tego jest działanie ENC
Masz rację, chodzi mi o typ Anona, dziękuję za wyjaśnienia. – will