我有一个使用DynamicProxy 3.1 进行运行时拦截的应用程序。我有一个使用NSubstitute进行模拟的测试程序集。我刚刚针对我完全引导InterceptWith
的容器(用于拦截的结构映射)编写了一些“集成”测试,以便我可以断言从容器中出来的某些类型被正确代理。
[Subject(typeof(RobotBoard))]
public class When_resolving_an_intercepted_type : WithContainer<IRobotBoard>
{
It should_have_recovery = () => Subject.ShouldHaveInterceptor<RecoveryInterceptor>();
}
public static class TestExtensions
{
public static void ShouldHaveInterceptor<T>(this object obj)
where T : IInterceptor
{
((IProxyTargetAccessor)obj)
.GetInterceptors()
.ToList()
.Exists(x => x is T)
.ShouldBeTrue();
}
}
但是,我收到此错误,表明 DynamicProxy 引用也在NSubstitute程序集中!(它似乎被合并了)。
Error 11 MyCompany.MyModule.Specifications D:\code\source\tests\When_resolving_an_intercepted_type.cs
The type 'Castle.DynamicProxy.IProxyTargetAccessor' exists in both 'd:\code\packages\Castle.Core.3.1.0\lib\net40-client\Castle.Core.dll' and 'd:\code\packages\NSubstitute.1.4.2.0\lib\NET40\NSubstitute.dll'
无论如何围绕这个冲突?