У меня есть следующие четыре строки; две пары, каждая из которых содержит строку, представляющую значение, и тип данных.Как вы можете создать экземпляр экземпляра типа, уже установленного для определенного значения, если у вас есть только строковое представление типа и значения?
string stringValueOfA = "Hello World!";
string stringTypeOfA = "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
string stringValueOfB = "44";
string stringTypeOfB = "System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
Я знаю, что я могу получить типы каждого, как так ...
var typeOfA = Type.GetType(stringTypeOfA);
var typeOfB = Type.GetType(stringTypeOfB);
... и я могу активировать новые экземпляры указанных типов, как это ...
var a = Activator.CreateInstance(typeOfA);
var b = Activator.CreateInstance(typeOfB);
... но я не уверен, как создавать экземпляры, которые установлены в значение, закодированное в его строковых представлениях stringValueOfA
и stringValueOfB
.
Независимо от решения, я также хотел бы избежать бокса, если это возможно. Я не думаю, что это так, но я надеюсь, что ошибаюсь.
Бинго! Да, из того, что я понимаю, это то, что делает Parse (или, по крайней мере, похоже на то, что он делает) под капотом. Благодаря! – MarqueIV
На самом деле, во многих случаях преобразователь типов просто вызывает статический метод Parse связанного типа. Хорошая вещь о преобразователях типов заключается в том, что они дают вам стандартизованный, тип агностик, объектно-ориентированный способ выполнения преобразования строк. –