Parse() private method

private Parse ( String url, String &objectURI ) : String
url String
objectURI String
return String
示例#1
0
        static void Main(string[] args)
        {
            var serverChannel = new TcpChannel(8082);
            ChannelServices.RegisterChannel(serverChannel);
            RemotingConfiguration.ApplicationName = "TestServer";
            RemotingConfiguration.RegisterWellKnownServiceType(
                typeof(IServer), "MyServerUri", WellKnownObjectMode.SingleCall);

            // Parse the channel's URI.
            string[] urls = serverChannel.GetUrlsForUri("MyServerUri");
            if (urls.Length > 0) {
                string objectUrl = urls[0];
                string objectUri;
                string channelUri = serverChannel.Parse(objectUrl, out objectUri);
                Console.WriteLine("The object URL is {0}.", objectUrl);
                Console.WriteLine("The object URI is {0}.", objectUri);
                Console.WriteLine("The channel URI is {0}.", channelUri);
            }

            Console.WriteLine("press a key to exit");
            Console.ReadLine();
        }
示例#2
0
		[Test] // TcpChannel.Parse ()
		public void ParseURL ()
		{
			TcpChannel channel;
			int i;
			
			channel = new TcpChannel ();
			
			for (i = 0; i < ParseURLTests.Length; i++) {
				string retval, objectURI;
				
				retval = channel.Parse (ParseURLTests[i].input, out objectURI);
				
				Assert.AreEqual (ParseURLTests[i].retval, retval, "#C1");
				Assert.AreEqual (ParseURLTests[i].objectURI, objectURI, "#C2");
			}
		}
示例#3
0
        static int Main(string[] argv)
        {
            XmlConfigurator.Configure();
            //AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            // Get ArchAngel PID from command line arguments
            if (argv.Length != 2)
            {
                Console.WriteLine("This application cannot be run separately from ArchAngel");
                return -1;
            }

            ArchAngelPID = Int32.Parse(argv[0]);
            string uri = argv[1];

            // Create an instance of a channel
            TcpChannel channel = new TcpChannel(0);
            ChannelServices.RegisterChannel(channel, false);

            // Register as an available service with the name CommandReceiver
            // Register as a Singleton so only one runs at a time.
            RemotingConfiguration.RegisterWellKnownServiceType(
                typeof(CommandReceiver),
                "CommandReceiver",
                WellKnownObjectMode.Singleton);

            ThreadStart start = SearchForArchAngelProcess;
            Thread thread = new Thread(start);
            thread.Start();

            DebugProcessInfoService dpis = (DebugProcessInfoService)Activator.GetObject(
                               typeof(DebugProcessInfoService), uri);

            if (dpis == null)
            {
                // ArchAngel is either not running or not responding. The process should die either way.
                EndDebugProcess.Set();
            }
            else
            {
                // Get the URI of our remoting services, so we can tell the ArchAngel
                // process how to contact us.
                string objectUri = "";
                string[] urls = channel.GetUrlsForUri("CommandReceiver");
                if (urls.Length > 0)
                {
                    string objectUrl = urls[0];
                    string channelUri = channel.Parse(objectUrl, out objectUri);
                    objectUri = channelUri + objectUri;
                }
                if (string.IsNullOrEmpty(objectUri))
                {
                    throw new Exception(
                        "The Debug Process could not register itself with .Net" +
                        "remoting. This is a serious error and must be reported to Slyce.");
                }

                // Inform ArchAngel that we have started.
                dpis.Started(objectUri);
            }

            // Wait for the signal to end the app.
            EndDebugProcess.WaitOne();
            return 0;
        }