Beispiel #1
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            customer = ProxyCreator.MakeINotifyPropertyChanged <Customer>();

            DataContext = customer;
            new Timer(ChangeName, null, 1000, 1000);
        }
Beispiel #2
0
        private void CheckLoadAssemblyIntoCache(ProxyCreator creator)
        {
            var savedScope = new ModuleScope(true);
            var builder    = new DefaultProxyBuilder(savedScope);

            var cp = creator(builder);

            Assert.AreSame(cp, creator(builder));

            var path = savedScope.SaveAssembly();

            CrossAppDomainCaller.RunInOtherAppDomain(
                delegate(object[] args)
            {
                var newScope   = new ModuleScope(false);
                var newBuilder = new DefaultProxyBuilder(newScope);

                var assembly = Assembly.LoadFrom((string)args[0]);
                newScope.LoadAssemblyIntoCache(assembly);

                var loadedCP = assembly.GetType((string)args[1]);
                Assert.AreSame(loadedCP, ((ProxyCreator)args[2])(newBuilder));
                Assert.AreEqual(assembly, ((ProxyCreator)args[2])(newBuilder).Assembly);
            },
                path,
                cp.FullName,
                creator
                );

            File.Delete(path);
        }
        public void CreateWithRedirectPath_MustProxThatPaths(Type type, string prefx)
        {
            var root  = ConfigHelper.CreateEmptyRoot();
            var prox  = ProxyUtil.CreateProx();
            var named = new Dictionary <PropertyIdentity, string>
            {
                [new PropertyIdentity(typeof(SomeBox), nameof(RedirectClass.Age))]   = "Age",
                [new PropertyIdentity(typeof(SomeBox), nameof(RedirectClass.Name))]  = prefx + "Name",
                [new PropertyIdentity(typeof(SomeBox), nameof(RedirectClass.Score))] = prefx + "Score",
            };
            var map     = new IdentityMapNameTransfer(named);
            var creator = new ProxyCreator(prox, type, map, IdentityNamedCreator.Instance, CompilePropertyVisitor.Instance);

            creator.Analysis();
            var x = (dynamic)creator.Build(root);

            x.Red.Age             = 123;
            x.Red.Name            = "456";
            x.Red.Score           = 789.123d;
            root["Age"]           = "123";
            root[prefx + "Name"]  = "456";
            root[prefx + "Score"] = "789.123";
            Assert.AreEqual("123", root["Age"]);
            Assert.AreEqual("456", root[prefx + "Name"]);
            Assert.AreEqual("789.123", root[prefx + "Score"]);
        }
Beispiel #4
0
 public ProxyCreat()
 {
     proxyCreator = ProxyHelper.Default.CreateComplexProxy <DbConnection>();
     ProxyHelper.Default.BuildProx(typeof(MConnection));
     configuration = new ConfigurationBuilder()
                     .AddInMemoryCollection()
                     .Build();
 }
Beispiel #5
0
        static void Main(string[] args)
        {
            // The Calculator object does not inherit from ICalculator,
            //  but we could use as if it were an ICalculator via the ProxyCreator.CreateProxy or ProxyCreator.CreateGenericProxy methods from Prise.Proxy.ProxyCreator!
            var foreignCalculator = new Calculator();

            // Create a proxy via the Generic <T> CreateProxy method
            var iCalc = ProxyCreator.CreateProxy <ICalculator>(foreignCalculator);
            // Or create a proxy via the CreateGenericProxy method using casting
            var iCalc2 = ProxyCreator.CreateGenericProxy(typeof(ICalculator), foreignCalculator) as ICalculator;

            Console.WriteLine(iCalc.Add(10, 20));  // 30
            Console.WriteLine(iCalc2.Add(10, 20)); // 30

            // Success!
            Console.Read();
        }
        public void GivenArgsInit_PopertyValueMustEqualInput()
        {
            var prox         = ProxyUtil.CreateProx();
            var type         = typeof(object);
            var nameTransfer = NullNameTransfer.Instance;
            var nameCreator  = IdentityNamedCreator.Instance;
            var propVisitor  = CompilePropertyVisitor.Instance;
            var creator      = new ProxyCreator(prox, type, nameTransfer, nameCreator, propVisitor);

            Assert.AreEqual(prox, creator.ProxyHelper);
            Assert.AreEqual(type, creator.Type);
            Assert.AreEqual(nameTransfer, creator.NameTransfer);
            Assert.AreEqual(propVisitor, creator.PropertyVisitor);
            Assert.AreEqual(nameCreator, creator.NamedCreator);
            Assert.AreEqual(type, creator.Type);
            Assert.IsNotNull(creator.PropertyInfos);
            Assert.IsFalse(creator.HasConfigPath);
        }
Beispiel #7
0
		private void CheckLoadAssemblyIntoCache(ProxyCreator creator)
		{
			var savedScope = new ModuleScope(true);
			var builder = new DefaultProxyBuilder(savedScope);

			var cp = creator(builder);
			Assert.AreSame(cp, creator(builder));

			var path = savedScope.SaveAssembly();

			CrossAppDomainCaller.RunInOtherAppDomain(delegate(object[] args)
			                                         	{
			                                         		var newScope = new ModuleScope(false);
			                                         		var newBuilder = new DefaultProxyBuilder(newScope);

			                                         		var assembly = Assembly.LoadFrom((string) args[0]);
			                                         		newScope.LoadAssemblyIntoCache(assembly);

			                                         		var loadedCP = assembly.GetType((string) args[1]);
			                                         		Assert.AreSame(loadedCP, ((ProxyCreator) args[2])(newBuilder));
			                                         		Assert.AreEqual(assembly, ((ProxyCreator) args[2])(newBuilder).Assembly);
			                                         	}, path, cp.FullName, creator);

			File.Delete(path);
		}
Beispiel #8
0
        public void ForwardToHttpContext <T>(HttpContext httpContext, Action <T> action) where T : class
        {
            var instance = ProxyCreator.CreateInstanceFromInterface <T>(new ServerProxyCreatorHelper(this, httpContext));

            action(instance);
        }
Beispiel #9
0
        public T GetTypedMethods <T>() where T : class
        {
            var instance = ProxyCreator.CreateInstanceFromInterface <T>(new ServerProxyCreatorHelper(this, null));

            return(instance);
        }
Beispiel #10
0
 public T CreatePluginProxy(object remoteObject, IParameterConverter parameterConverter, IResultConverter resultConverter) =>
 ProxyCreator.CreateProxy <T>(remoteObject, parameterConverter, resultConverter);
Beispiel #11
0
 public IPluginBootstrapper CreateBootstrapperProxy(object remoteBootstrapper) =>
 ProxyCreator.CreateProxy <IPluginBootstrapper>(remoteBootstrapper);