我有这个代码:
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,因为我真的很想能够发现装饰器链下的基本实现类型。