/// <summary>
        /// Inizializza una nuova istanza della classe ProcessingServiceHost con l'oggetto specificato contenente
        /// le strutture dati necessarie al funzionamento del servizio e con gli indirizzi di base specificati.
        /// </summary>
        /// <param name="container">Oggetto contenente i dati richiesti dal costruttore del servizio.</param>
        /// <param name="baseAddresses">Indirizzi di base del servizio ospitato.</param>
        /// <exception cref="ArgumentNullException">container è null.</exception>
        public ProcessingServiceHost(IProcessingServiceContainer container, params Uri[] baseAddresses)
            : base(typeof(ProcessingService), baseAddresses)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            var contracts = this.ImplementedContracts.Values;
            foreach (var c in contracts)
            {
                var instanceProvider = new ProcessingInstanceProvider(container);
                c.Behaviors.Add(instanceProvider);   // add custom behavior
            }
        }
        /// <summary>
        /// Inizializza una nuova istanza della classe ProcessingServiceHost con l'oggetto specificato contenente
        /// le strutture dati necessarie al funzionamento del servizio e con gli indirizzi di base specificati.
        /// </summary>
        /// <param name="container">Oggetto contenente i dati richiesti dal costruttore del servizio.</param>
        /// <param name="baseAddresses">Indirizzi di base del servizio ospitato.</param>
        /// <exception cref="ArgumentNullException">container è null.</exception>
        public ProcessingServiceHost(IProcessingServiceContainer container, params Uri[] baseAddresses)
            : base(typeof(ProcessingService), baseAddresses)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            var contracts = this.ImplementedContracts.Values;

            foreach (var c in contracts)
            {
                var instanceProvider = new ProcessingInstanceProvider(container);
                c.Behaviors.Add(instanceProvider);   // add custom behavior
            }
        }