Ejemplo n.º 1
0
        public TInterface CreateProxy(ITargetAppDomain targetDomain)
        {
            var marshaledType = typeof(TImplementation);

            var marshaledTypeName = marshaledType.FullName;

            var marshaledAssemblyName = marshaledType.Assembly.FullName;

            var crossDomainProxy = (TImplementation)targetDomain.CreateInstanceAndUnwrap(
                marshaledAssemblyName, marshaledTypeName);

            return(crossDomainProxy);
        }
        public virtual void before_each()
        {
            autoSubstitute = new AutoSubstitute();

            targetDomain     = autoSubstitute.Resolve <ITargetAppDomain>();
            appDomainFactory = autoSubstitute.Resolve <IAppDomainFactory>();
            appDomainFactory.Create(somePath).Returns(targetDomain);

            proxyable        = autoSubstitute.Resolve <IDummyProxyable>();
            proxyableFactory = autoSubstitute.Resolve <IProxyableFactory <IDummyProxyable> >();
            proxyableFactory.CreateProxy(targetDomain).Returns(proxyable);

            runner = new CrossDomainRunner <IDummyProxyable, float>(appDomainFactory, proxyableFactory);

            proxyable.PassInput(Arg.Any <float>()).Returns(callInfo =>
            {
                float input = callInfo.Arg <float>();
                return(input);
            });
        }