/// <summary>
 /// Calls the create service for event.
 /// </summary>
 /// <param name="e">The event arguments.</param>
 protected virtual void OnCreateServiceFor(CreateServiceForEventArgs e)
 {
     if (CreateServiceFor != null)
     {
         CreateServiceFor(this, e);
     }
     else
     {
         e.CreatedAutoService = default(T);
         e.CanCreate          = false;
     }
 }
        /// <summary>
        /// Creates a T object for the specified service.
        /// </summary>
        /// <param name="service">The service to create T for.</param>
        /// <returns>The service created or null if unable to create.</returns>
        protected override T CreateAutoServiceFor(Service service)
        {
            CreateServiceForEventArgs laArgs = new CreateServiceForEventArgs(service);

            OnCreateServiceFor(laArgs);

            if (laArgs.CanCreate)
            {
                return(laArgs.CreatedAutoService);
            }
            else
            {
                return(default(T));
            }
        }