Как получить сущности из универсального EntitySet во время выполнения, не зная универсального типа? - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю функцию отображения, которая будет принимать EntitySet<> с неизвестными различными универсальными типами во время выполнения, и я хочу получить сущности внутри входящих EntitySet и добавить их в список.

Iя не могу получить доступ к сущностям, потому что у меня EntitySet как объект, и когда я пытаюсь привести объект к соответствующему типу, у меня не получается, потому что я не знаю универсальный тип EntitySet

((EntitySet<XXXX>)dataValues[pInfo.Name]).ToList();

Я могу прочитать тип данных общего типа EntitySet, но я не могу использовать его для создания актеров, я не знаю как или даже если это возможно или нет!

dataValues[pInfo.Name].GetType().GenericTypeArguments.First()

Меня не волнует универсальный тип, поскольку мне просто нужно получить коллекцию только внутри EntitySet.

Я знаю, что мой вопрос выглядит как повторяющийся, но я, честно говоря, не смог решить свою проблемус результатами, найденными при поиске.

Я использую C# и ASP.net

1 Ответ

0 голосов
/ 28 ноября 2018

EntySet наследуется от System.Collections.Generic.ICollection. System ICollection наследуется от System.Collections.Generic.IEnumerable, а IEnumerable наследуется от System.Collections.IEnumerable.

System.Collections.IEnumerable не является универсальным интерфейсом.и вы можете использовать в foreach.

Таким образом, ваша функция такова:

public class Example
{
     public static void EnumEntities( IEnumerable entities )
     {
        foreach( var entity in entities )
        {
            Console.WriteLn( entity.ToString());
        }
     }
}
...