Accessor中Generic的元素是internal/private的会导致转换失败的异常

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());

转载于:https://www.cnblogs.com/DelPiero/archive/2012/10/10/2718411.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值