Exemple #1
0
        /// <summary>
        /// Gets the IFunctionalService witht he given name, checking to make sure that the name makes sense first.
        /// </summary>
        /// <param name="serviceName">The name of the service to find.</param>
        /// <returns>An IFunctionalService instance if found, otherwise an exception is thrown.</returns>
        protected virtual IFunctionalService getService(string serviceName)
        {
            if (!serviceName.ToLower().EndsWith("s"))
            {
                throw new InvalidOperationException("Found a functional service to support messages to " + serviceName + ", but its name isn't a plural (doesn't end in 's'). This will not work in the current framework.");
            }

            IService service = FunctionalServiceProviderFactory.GetInstance().GetProvider(serviceName);

            if (service == null)
            {
                throw new InvalidOperationException("No functional service found to support messages to " + serviceName);
            }

            if (!ProviderUtils.isFunctionalService(service.GetType()))
            {
                throw new InvalidOperationException("Service (" + service.GetType().Name + ") found for " + serviceName + " is not a functional service implementation");
            }

            return(service as IFunctionalService);
        }