我有这个代码:
using (container.BeginLifetimeScope())
{
RenderWord instruction = new RenderWord();
var instances = container.GetAllInstances<IInstructionHandler<RenderWord>>();
var firstInstance = result.First();
}
instances
是类型IEnumerable<IInstructionHandler<RenderWord>>
firstInstance
是一种类型IInstructionHandler<RenderWord>
,实际上是一个装饰器的实例,它装饰另一个装饰器,另一个装饰器装饰另一个装饰器......
在运行时,实际的类instances
是类型ContainerControlledCollection<IInstructionHandler<RenderWord>>
,并且这个ContainerControlledCollection
类拥有一个非常有用的信息——底层ImplementationType
。
有什么方法可以让我在运行时到达ContainerControlledCollection
或producers[0].Value.ImplementationType
,因为我真的很想能够发现装饰器链下的基本实现类型。