protected override object GetServiceImpl(Type serviceType)
    {
      if (serviceType == typeof(DataViewSupport))
      {
        if (_dataViewSupport == null) _dataViewSupport = new NpgsqlDataViewSupport();
        return _dataViewSupport;
      }

      if (serviceType == typeof(DataObjectSupport))
      {
        if (_dataObjectSupport == null) _dataObjectSupport = new NpgsqlDataObjectSupport();
        return _dataObjectSupport;
      }

      if (serviceType == typeof(DataObjectIdentifierResolver))
      {
        if (_dataObjectIdentifierResolver == null) _dataObjectIdentifierResolver = new NpgsqlDataObjectIdentifierResolver(Site);
        return _dataObjectIdentifierResolver;
      }

      if (serviceType == typeof(DataConnectionSupport))
        return this;

      return base.GetServiceImpl(serviceType);
    }
        protected override object GetServiceImpl(Type serviceType)
        {
            if (serviceType == typeof(DataViewSupport))
            {
                if (_dataViewSupport == null)
                {
                    _dataViewSupport = new NpgsqlDataViewSupport();
                }
                return(_dataViewSupport);
            }

            if (serviceType == typeof(DataObjectSupport))
            {
                if (_dataObjectSupport == null)
                {
                    _dataObjectSupport = new NpgsqlDataObjectSupport();
                }
                return(_dataObjectSupport);
            }

            if (serviceType == typeof(DataObjectIdentifierResolver))
            {
                if (_dataObjectIdentifierResolver == null)
                {
                    _dataObjectIdentifierResolver = new NpgsqlDataObjectIdentifierResolver(Site);
                }
                return(_dataObjectIdentifierResolver);
            }

            if (serviceType == typeof(DataConnectionSupport))
            {
                return(this);
            }

            return(base.GetServiceImpl(serviceType));
        }