Я не уверен, что понимаю.Во-первых, использование as
не выдает исключение, оно просто возвращает ноль.
Во-вторых, я уверен, что вы не хотите разыгрывать, вы просто хотите проверить тип, поэтому вам нужнооператор is
.Но поскольку MyType
известен только во время выполнения, вам действительно нужно размышление.Это довольно просто:
object o = engine.Readfile(CSVPath);
if(MyType.IsAssignableFrom(o.GetType())
_Data = o;
else
Console.WriteLine("Mismatching types: {0} is not of type {1}", o.GetType(), MyType);
Примечание: я предполагаю, что _Data
имеет тип object
, в противном случае вы просто используете оператор as
с типом _Data
.