Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
 /// <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;
			}
		}