런타임 차단을 수행하기 위해 DynamicProxy 3.1을 사용하는 응용 프로그램이 있습니다. 조롱을 위해 NSubstitute을 사용하는 테스트 어셈블리가 있습니다. 방금 컨테이너에서 나오는 특정 유형이 제대로 프록시되었다는 것을 주장 할 수 있도록 전체 부트 스트래핑 된 컨테이너 (구조적으로 InterceptWith
을 사용하여 차단)에 대한 "통합"테스트를 작성했습니다.NSubstitute를 참조하는 어셈블리에서 DynamicProxy 유형을 사용할 때 "유형이 두 어셈블리 모두에 존재합니다"라는 오류를 수정하는 방법은 무엇입니까?
[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'
이 충돌이 발생합니까?
이 문서에서는 더 저를 도왔다. org/c-howtos/aliases-overcoming-name-conflicts-part-2-extern-alias / –