jestem przechowywania wartości obiektów w ciągach npC# rodzajowe ciąg analizowania do dowolnego obiektu
string[] values = new string[] { "213.4", "10", "hello", "MyValue"};
jest jakiś sposób, aby rodzajowo zainicjować odpowiednie typy obiektów? na przykład, coś
double foo1 = AwesomeFunction(values[0]);
int foo2 = AwesomeFunction(values[1]);
string foo3 = AwesomeFunction(values[2]);
MyEnum foo4 = AwesomeFunction(values[3]);
gdzie AwesomeFunction
jest funkcja muszę. Ostatecznym zastosowaniem jest intialize właściwości np
MyObject obj = new MyObject();
PropertyInfo info = typeof(MyObject).GetProperty("SomeProperty");
info.SetValue(obj, AwesomeFunction("20.53"), null);
Powodem muszę taka funkcjonalność jest ja przechowywania wspomnianych wartości w bazie danych, i chcą je odczytać za pomocą kwerendy, a następnie zainicjować odpowiednie właściwości obiektu . Czy to będzie możliwe? Cały obiekt nie jest przechowywany w bazie danych, tylko kilka pól, które chciałbym odczytać dynamicznie w ustawieniu &. Wiem, że mogę to zrobić statycznie, ale będzie to nudne, trudne do utrzymania i czytane będą podatne na błędy z wieloma różnymi polami/właściwościami.
EDYCJA: Dodatkowe punkty, jeśli AwesomeFunction
może pracować z klas niestandardowych, które określają konstruktora, który przyjmuje ciąg!
EDIT2: Typ miejsca docelowego można poznać za pośrednictwem właściwości PropertyType, w konkretnym przypadku, w którym chcę korzystać z tego rodzaju funkcji. Myślę wyliczenia byłoby łatwe do analizowania z tym np
Type destinationType = info.PropertyType;
Enum.Parse(destinationType, "MyValue");
Re „punktów bonusowych” - byłoby lepiej zdefiniować i skojarzyć 'TypeConverter', i że * * obsłużyć to (przekazanie do konstruktora). Ponieważ to właśnie konwertery typu są zaprojektowane dla ... –