我已经简化了代码,但基本上这段代码在循环上运行,类型来自反射。这里唯一不变的是IWorker<T>
接口。
我需要访问的属性,IWorker
但我不能转换它,因为argType
编译器不接受,有什么想法吗?
(我可以用动态来做到这一点,但我希望有一个替代方案来防止未来由于重构而出现错误)
Type argType = @interface.GetGenericArguments().First();
var worker = (IWorker<argType>)FormatterServices.GetUninitializedObject(MyType);
MyType
源自编译时未知的位置IWorker<T>
。T