原代码:
cs
var result = queryAllMethod.Invoke(service, null);
var list = (List<DefineBase>)result;
DefineInfoList.AddRange(list);
第二行代码报错,
System.InvalidCastException:"无法将类型为"System.Collections.Generic.List`1FluentVision.Core.AnalogIoDefine"的对象强制转换为类型"System.Collections.Generic.List`1FluentVision.Core.DefineBase"。
但是DefineBase是AnalogIoDefine的基类。
问了一下AI,发现可以用IEnumerable替代List:
cs
var result = queryAllMethod.Invoke(service, null);
var list = (IEnumerable<DefineBase>)result;
DefineInfoList.AddRange(list);
因为IEnumerable<T>支持协变:

