public void RegisterFactory()
        {
            Type provider = null;

            try
            {
                provider = System.Type.GetType(Type);
            }
            catch (Exception exc)
            {
                Trace.WriteLineIf(DataSet.TraceDataSet.TraceError, "DataSet factory: unable to load factory type " + Type + ": " + exc.Message);
                return;
            }
            if (provider == null)
            {
                Trace.WriteLineIf(DataSet.TraceDataSet.TraceError, "DataSet factory: type " + Type + " is not found.");
                return;
            }
            try
            {
                if (!String.IsNullOrEmpty(Name))
                {
                    DataSetFactory.Register(Name, provider);
                }
                else if (!String.IsNullOrEmpty(Extension))
                {
                    DataSetFactory.RegisterExtension(Extension, provider);
                }
                else
                {
                    DataSetFactory.Register(provider);
                }
            }
            catch (Exception exc)
            {
                Trace.WriteLineIf(DataSet.TraceDataSet.TraceError, "DataSet factory " + this.ToString() + ": unable register factory: " + exc.Message);
            }
        }