Czy można wykonać następujące czynności w języku C # (lub w innym języku)?
Pobieram dane z bazy danych. W czasie wykonywania mogę obliczyć liczbę kolumn i typy danych pobranych kolumn.
Następnie chcę „wygenerować” klasę z tymi typami danych jako polami. Chcę również przechowywać wszystkie rekordy, które pobrałem w kolekcji.
Problem polega na tym, że chcę wykonać krok 1 i 2 w czasie wykonywania
czy to możliwe? Obecnie używam C #, ale w razie potrzeby mogę przejść do czegoś innego.
c#
dynamic-typing
Chani
źródło
źródło
dynamic
w Masywny: blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massiveOdpowiedzi:
Użyj CodeDom. Oto coś na początek
Tworzy zespół „Test.Dynamic.dll” z tą klasą
Możesz także użyć dynamicznych funkcji C #
Klasa DynamicEntity, nie trzeba niczego tworzyć w czasie wykonywania
I użyj tego w ten sposób
źródło
Tak, możesz użyć do tego emitera odbicia . Manning ma coś, co wygląda na świetną książkę na ten temat: Metaprogramowanie w .NET .
BTW: dlaczego nie użyć listy zawierającej słowniki lub podobne do przechowywania każdego rekordu z nazwami pól jako kluczami?
źródło