2013-04-26 10 views
5

Czy istnieje sposób na umieszczenie atrybutów na właściwościach w anonimowym typie? Lub sam anonimowy typ? Jeśli nie, kiedy ją stworzysz, być może później za pomocą refleksji?Czy istnieje sposób umieszczania atrybutów na właściwościach anonimowych typów?

Jako potencjalne zastosowanie scenariusza, pozwól mi pożyczyć od Dapper:

Świadcząc parametry do wykonania kwerendy w Dapper, podać parametry w rodzaju anonimowego:

connection.Query<Foo>(sql, new { Id = guid, Condition = true }); 

powiedzmy Potrzebowałem aby przekazać coś na temat mapowania, jak możemy przechowywać booleany jako tekst T/F (straszne, ale niestety prawdziwe doświadczenie), więc chcę dodać atrybut do tej właściwości Condition, aby powiedzieć Dapperowi, jak go odwzorować (znowu to jest lekko wymuszony przykład) . Czy to jest możliwe?

Odpowiedz

6

Nie, nie możesz tego zrobić ani w momencie deklaracji, ani później z refleksją.

Najbliższym możliwym rozwiązaniem byłoby użycie istniejącego anonimowego typu jako podstawy dla nowego typu utworzonego za pomocą CodeDom lub może Mono Cecil.

Podejrzewam, że lepiej będzie po prostu ręcznie wpisać kod samodzielnie.