Как найти тип данных, хранящихся в строке - PullRequest
0 голосов
/ 08 апреля 2019

Я извлек входные и выходные параметры из wsdl и сохранил их в строке. пример: строка type=parameterType. вывод: type="int".

Теперь я хочу получить значение по умолчанию для этого типа (в данном случае int).

Я пробовал это: type.GetType(). Результатом является тип класса String, однако мне нужен тип значения.

Это так, чтобы я мог получить значение по умолчанию типа фактического значения, а не значение по умолчанию строки, например int ==> 0, а не "int" ==> string ==> null.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Учитывая имя типа, вам нужно использовать отражение, чтобы найти фактический тип, а затем получить его значение по умолчанию.Однако, поскольку имя типа для int равно System.Int32, вам необходимо просмотреть словарь, например:

var dictionary = new Dictionary<string, string>
{
    {"int", "System.Int32"},
};

var typeName = "int";
if (dictionary.ContainsKey(typeName))
    typeName = dictionary[typeName];
var type = Type.GetType(typeName);

var defaultValue = type.IsValueType ? Activator.CreateInstance(type) : null;
0 голосов
/ 08 апреля 2019

Если формат всегда один и тот же (сначала тип, затем значение), вы можете использовать String.Split для извлечения типа в виде строки, а затем вы можете сделать if(typeString == "int"), затем из строки в int int x = int.Parse(valueString); Надеюсь, что это даст вам идею сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...