Я хотел бы выполнить бросок, как показано ниже:Cast объекта в общий тип
if (prop.PropertyType.GetGenericTypeDefinition() == typeof(ObjectSet<>))
{
if (prop.Name.StartsWith("NV_"))
{
var nvLookupTable = (prop.GetValue(context) as ObjectSet<>);
// I know the above statement is wrong. I'd like to cast
// it as an ObjectSet<NV_Something> where NV_Something is the name
// of the database table
Я забыл эти вещи каждые несколько лет/месяцев/недель, особа. когда я под давлением.
Как я добавил в своем комментарии к вашему другому вопросу, вы не можете (и вы должны почти наверняка использовать приведение вместо 'as' в любом случае). Вы ничего не сказали о том, что вы пытаетесь сделать * со значением после этого, что затрудняет помощь. –
Вы не можете сделать это в одном утверждении: если вы хотите статически типизированный 'var', вам нужно будет использовать цепочку' if'-'then'-'sese'. В противном случае вы можете использовать 'dynamic'. – dasblinkenlight
@JonSkeet: Спасибо. Извините, я, возможно, разместил этот вопрос, пока вы вводили комментарий в моем предыдущем вопросе. На данный момент я использовал отражение. Я просто хотел прочитать значения свойств из ObjectSet. Я думал, что сильно типизированный объект будет приятным. Кажется, я ошибся. Имейте смутное воспоминание о наличии встроенной оболочки вокруг отражения, чтобы получить строго типизированный интерфейс для отраженного объекта времени выполнения. Большое спасибо. –