Я пытаюсь получить фактический объект, содержащийся в списке, который сам содержится в задаче.Использовать отражение, чтобы получить реальную форму типа возврата Задача <Список <Словарь <строка, объект >>> вместо объекта
например. метод имеет следующую подпись, например.
public async Task<List<Dictionary<string,object>>> GetData()
я в настоящее время использовать что-то вроде этого:
var member = type.GetMembers()[0];
var returntype = member.ReturnType.GetGenericArguments();
var temp = member.ReturnType.GetGenericArguments()[0];
if (temp.GetGenericArguments().Count() > 0)
{
temp.GetTypeInfo().GetGenericArguments();
var innerttype = temp.GetGenericArguments()[0].FullName;
}
В настоящее время выше код (который не является полным, но только выписку из фактического кода) возвращение System.Object, как FULLNAME вместо словаря.
Любые предложения по его решению приветствуются.
Я запустил ваш код и 'innerttype' печатает в' System.Collections.Generic.Dictionary'2 [[System.String, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089], [System.Object , mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]] '- именно то, что вы хотите. – Glorfindel
Чтобы получить фактический тип значения объекта, хранящегося в словаре, вам нужно выполнить 'value.GetType()'. Насколько я вижу, вы используете рефлексию для перехода к типу возвращаемого метода «GetData», и в нем четко сказано, что словарь содержит значения типа «объект». Чтобы узнать фактический тип экземпляра каждого объекта, вам нужно их отдельно изучить. –