I have the following function:
public IEnumerable<string> PropertiesFromType<T>(IEnumerable<T> input)
From the type (T), I would like to get the names of the properties.
I have tried the following:
var properties = typeof(T).GetProperties();
//var properties = input.GetType().GetGenericArguments()[0].GetProperties(); // Doesn't work either
foreach (var item in properties)
{
Console.WriteLine(item.Name);
}
// By input it does work
var inputProperties = input.First().GetType().GetProperties();
foreach (var item in inputProperties)
{
Console.WriteLine(item.Name);
}
When sending an anonymous IEnumerable<object> into the function, it has no properties when retrieving the Type from T.
However, when using the Type of an item in the IEnumerable, it does have properties.
As suggested by: How to get the type of T from a member of a generic class or method? using the GetGenericArguments function neither returns properties.
Example: https://dotnetfiddle.net/Widget/uKzO6H
Aucun commentaire:
Enregistrer un commentaire