public static IBandProvider GetBandProvider(string fname, byte[] header1024, Access access, IRasterDataProvider provider, Dictionary <string, string> datasetNames) { IBandProvider prd = null; if (!IsLoadedBandProviders) { RegisteredBandProviders = TryLoadRegisteredBandProviders(); } prd = GetMatchedBandProvider(fname, header1024, RegisteredBandProviders, datasetNames); if (prd != null) { DataIdentify dataIdentify = prd.DataIdentify; prd.DataIdentify = new DataIdentify(); prd = Activator.CreateInstance(prd.GetType()) as IBandProvider; prd.Init(fname, access == Access.GA_ReadOnly ? enumDataProviderAccess.ReadOnly : enumDataProviderAccess.Update, provider); prd.DataIdentify = dataIdentify; } return(prd); }