C# 错误的循环依赖异常-以快速顺序解析组件
我正在使用一个工厂来解析Castle Windsor中的组件(带有参数),它正常工作。但是,(暂时的)实例创建与传入事件相关联,如果事件间隔太短,则会出现循环依赖项异常C# 错误的循环依赖异常-以快速顺序解析组件,c#,.net,exception,dependency-injection,castle-windsor,C#,.net,Exception,Dependency Injection,Castle Windsor,我正在使用一个工厂来解析Castle Windsor中的组件(带有参数),它正常工作。但是,(暂时的)实例创建与传入事件相关联,如果事件间隔太短,则会出现循环依赖项异常 为什么??我不应该因为观察到同样的工厂方法正常工作而得到这个异常,因为我不相信有任何实际的循环依赖 计时太近/对象创建太快时 这是显示详细信息的日志,请注意,这两个调用在时间上非常接近(需要) 如何修复它 对factory方法的调用是否在不同的线程中?您使用的是工厂设备吗?另外,您的具体类的依赖项是什么?PatrickQu
- 为什么??我不应该因为观察到同样的工厂方法正常工作而得到这个异常,因为我不相信有任何实际的循环依赖
- 如何修复它
IProcessChanger CreateProcessChanger(int pid) 10472 @ 15:36:31.667
IProcessChanger CreateProcessChanger(int pid) 5700 @ 15:36:31.700
First Chance Exception in xxx.vshost.exe, sender Name:xxx.vshost.exe
There are no context policies.
! CircularDependencyException: Dependency cycle has been detected when trying to resolve component 'xxx.ProcessChanger'.
The resolution tree that resulted in the cycle is the following:
Component 'xxx.ProcessChanger' resolved as dependency of
component 'xxx.ProcessChanger' which is the root component being resolved.
@ 15:36:31.948
A first chance exception of type 'Castle.MicroKernel.CircularDependencyException' occurred in Castle.Windsor.dll
Unhandled Exception! CircularDependencyException: Dependency cycle has been detected when trying to resolve component 'xxx.ProcessChanger'.
The resolution tree that resulted in the cycle is the following:
Component 'xxx.ProcessChanger' resolved as dependency of
component 'xxx.ProcessChanger' which is the root component being resolved.
@ 15:36:32.013
at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired, Burden& burden)
at Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext context, Boolean instanceRequired)
at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context)
at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service, IDictionary additionalArguments, IReleasePolicy policy)
at Castle.MicroKernel.DefaultKernel.Castle.MicroKernel.IKernelInternal.Resolve(Type service, IDictionary arguments, IReleasePolicy policy)
at Castle.MicroKernel.DefaultKernel.Resolve(Type service, IDictionary arguments)
at Castle.Windsor.WindsorContainer.Resolve[T](IDictionary arguments)
at xxx.BaseFactory.Create[T](Object[] arguments) ...
The program '[9116] xxx.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.