/// <summary> /// Loads an implementation of <see cref="IRelayNode"/> into a new <see cref="AppDomain"/>. /// </summary> /// <param name="changedDelegate">The delegate that is called when the assembly is changed.</param> /// <returns>Returns an instance of an implementation of <see cref="IRelayNode"/></returns> internal IRelayNode GetRelayNode(LoadedAssemblyChangeDelegate changedDelegate) { EnsureDomainIsLoaded(); try { Factory nodeFactory = (Factory)nodeDomain.CreateInstanceFromAndUnwrap( "MySpace.DataRelay.NodeFactory.dll", "MySpace.DataRelay.Factory" ); nodeChanged = changedDelegate; if (log.IsInfoEnabled) { log.Info("Loaded relay node domain."); } return((IRelayNode)nodeFactory.LoadClass("MySpace.DataRelay.RelayNode", "MySpace.DataRelay.RelayNode", out nodeFileName)); } catch (Exception ex) { if (log.IsErrorEnabled) { log.ErrorFormat("Error loading relay node: {0}", ex); } return(null); } }
/// <summary> /// Initializes the <see cref="RelayServer"/>. /// </summary> public RelayServer(string assemblyPath) { if (assemblyPath == null) { assemblyPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AssemblyLoader.AssemblyFolderName); } this.assemblyPath = assemblyPath; nodeChangedDelegate = new LoadedAssemblyChangeDelegate(AssemblyChanged); }
/// <summary> /// Initializes the <see cref="RelayServer"/>. /// </summary> public RelayServer(string assemblyPath) { if (assemblyPath == null) { assemblyPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AssemblyLoader.AssemblyFolderName); } this.assemblyPath = assemblyPath; nodeChangedDelegate = new LoadedAssemblyChangeDelegate(AssemblyChanged); }
/// <summary> /// Loads an implementation of <see cref="IRelayNode"/> into a new <see cref="AppDomain"/>. /// </summary> /// <param name="changedDelegate">The delegate that is called when the assembly is changed.</param> /// <returns>Returns an instance of an implementation of <see cref="IRelayNode"/></returns> internal IRelayNode GetRelayNode(LoadedAssemblyChangeDelegate changedDelegate) { EnsureDomainIsLoaded(); try { Factory nodeFactory = (Factory)nodeDomain.CreateInstanceFromAndUnwrap( "MySpace.DataRelay.NodeFactory.dll", "MySpace.DataRelay.Factory" ); nodeChanged = changedDelegate; if (log.IsInfoEnabled) log.Info("Loaded relay node domain."); return (IRelayNode)nodeFactory.LoadClass("MySpace.DataRelay.RelayNode", "MySpace.DataRelay.RelayNode", out nodeFileName); } catch (Exception ex) { if (log.IsErrorEnabled) log.ErrorFormat("Error loading relay node: {0}", ex); return null; } }