internal SuspenseItemManager 中有private Queue<SuspenseItem> suspenseList = new Queue<SuspenseItem>();
SuspenseItem是internal的
以下代码会抛异常: SuspenseItem无法转成SuspenseItem_Accessor。
因为SuspenseItemManager_Accessor中有Generic的SuspenseItem,而且是internal的,所以不能转换。
SuspenseItemManager_Accessor target = new SuspenseItemManager_Accessor(); SuspenseItem_Accessor obj = new SuspenseItem_Accessor(); target.suspenseList.Enqueue(obj);
解决方案:
SuspenseItemManager_Accessor target = new SuspenseItemManager_Accessor(); PrivateObject obj = new PrivateObject(target.Target); Queue<SuspenseItem> queue = obj.GetField("suspenseList") as Queue<SuspenseItem>; queue.Enqueue(new SuspenseItem());