Я пишу функцию, которая принимает параметр, и для этого параметра требуется тип TEntity. Я хочу, чтобы иметь возможность передать его конкретный тип во время выполнения, но у меня возникли проблемы при получении его компиляции:Как установить тип TSomething во время выполнения на C#?
public LoadOperation LoadQuery(EntityQuery<???> query)
{
LoadOperation loadOperation = DomainContext.Load(query,LoadBehavior.MergeIntoCurrent, false);
return loadOperation;
}
Код, который обыкновение компилировать выглядит следующим образом:
EntityQuery<Person> q = DomainContext.GetPerson();
LoadQuery(q);
Я пробовал разные вещи, чтобы сделать эту работу, но я в недоумении. Что мне нужно сделать?
Функция загрузки является частью служб WCF RIA, поэтому она не моя. Будет ли единственный способ сделать то, что я пытаюсь сделать, чтобы переопределить эту функцию? – johnnywhoop
Эта проблема заключается в том, что тип первого параметра функции: вы можете передать какой-либо общий «EntityQuery»? Я предполагаю, что нет. Если вы можете изменить функцию так, чтобы вы могли, это хорошо. Поскольку вы не можете, вам понадобится способ массирования вашей переменной запроса во что-то, что эта функция примет. –
Я до сих пор не получил его на работу, но ваш ответ объяснил многое, что происходит. Я отметил это как ответ, потому что это точно, проблема в функции Load(), и поэтому мне нужно сосредоточиться. Поскольку Load() требует TEntity, мне нужно будет выяснить, как изменить его, чтобы взять T или обработать мой запрос как TEntity. – johnnywhoop