private void Window_Loaded(object sender, RoutedEventArgs e) { customer = ProxyCreator.MakeINotifyPropertyChanged <Customer>(); DataContext = customer; new Timer(ChangeName, null, 1000, 1000); }
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"]); }
public ProxyCreat() { proxyCreator = ProxyHelper.Default.CreateComplexProxy <DbConnection>(); ProxyHelper.Default.BuildProx(typeof(MConnection)); configuration = new ConfigurationBuilder() .AddInMemoryCollection() .Build(); }
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); }
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 ForwardToHttpContext <T>(HttpContext httpContext, Action <T> action) where T : class { var instance = ProxyCreator.CreateInstanceFromInterface <T>(new ServerProxyCreatorHelper(this, httpContext)); action(instance); }
public T GetTypedMethods <T>() where T : class { var instance = ProxyCreator.CreateInstanceFromInterface <T>(new ServerProxyCreatorHelper(this, null)); return(instance); }
public T CreatePluginProxy(object remoteObject, IParameterConverter parameterConverter, IResultConverter resultConverter) => ProxyCreator.CreateProxy <T>(remoteObject, parameterConverter, resultConverter);
public IPluginBootstrapper CreateBootstrapperProxy(object remoteBootstrapper) => ProxyCreator.CreateProxy <IPluginBootstrapper>(remoteBootstrapper);