示例#1
0
        public EndPoint(Uri EndPointUri,
                        IMessageDecoder CommandDecoder,
                        ICommandDispatcher CommandDispatcher,
                        ILogger Logger)
        {
            EndPointUri.IsNotNull($"Invalid parameter received in the {nameof(EndPoint)} constructor. {nameof(EndPointUri)}");
            CommandDecoder.IsNotNull($"Invalid parameter received in the {nameof(EndPoint)} constructor. {nameof(CommandDecoder)}");
            CommandDispatcher.IsNotNull($"Invalid parameter received in the {nameof(EndPoint)} constructor. {nameof(CommandDispatcher)}");
            Logger.IsNotNull($"Invalid parameter received in the {nameof(EndPoint)} constructor. {nameof(Logger)}");

            this.CommandDecoder    = CommandDecoder;
            this.CommandDispatcher = CommandDispatcher;
            this.Logger            = Logger;

            HttpListener = new HttpListener()
            {
                IgnoreWriteExceptions = false,
                Prefixes = { EndPointUri.ToString() },
            };

            HttpListener.Start();

            Logger.Log(Constants.Component, $"New endpoint at {EndPointUri.ToString()}");
        }