public Task <object> GetInstanceAsync() { if (_class == null) { try { Dataset dataset = new Dataset(); IRasterLayer layer = (IRasterLayer)dataset.AddRasterFile(_filename); if (layer != null && layer.Class is IRasterClass) { _class = layer.Class as IRasterClass; if (_class is RasterClassV1) { if (!((RasterClassV1)_class).isValid) { _class = null; } } } } catch { return(Task.FromResult <object>(_class)); } } return(Task.FromResult <object>(_class)); }