KernelDebuggerProxy
class KernelDebuggerProxy
using Castle.MicroKernel;
using Castle.Windsor.Diagnostics.DebuggerViews;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
namespace Castle.Windsor.Diagnostics
{
[DebuggerDisplay("")]
internal class KernelDebuggerProxy
{
private readonly IEnumerable<IContainerDebuggerExtension> extensions;
[DebuggerDisplay("")]
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public DebuggerViewItem[] Extensions {
get {
return extensions.SelectMany((IContainerDebuggerExtension e) => e.Attach()).ToArray();
}
}
public KernelDebuggerProxy(IWindsorContainer container)
: this(container.Kernel)
{
}
public KernelDebuggerProxy(IKernel kernel)
{
if (kernel == null)
throw new ArgumentNullException("kernel");
IEnumerable<IContainerDebuggerExtension> enumerable = kernel.GetSubSystem(SubSystemConstants.DiagnosticsKey) as IContainerDebuggerExtensionHost;
extensions = (enumerable ?? new IContainerDebuggerExtension[0]);
}
}
}