/// <summary> /// Get a string representation of the resource. This is either the complete content /// or a source string. /// </summary> public string GetString() { _lock.Take(); if (_reset) { Load(); if (_reset) { _lock.Release(); Log.Warning("Stream wasn't able to be resolved '" + FullPath + "'."); return(null); } } // determine the string representation based on the mime type switch (Mime.GetCategory(MimeType)) { case Mime.Category.Text: StreamReader reader = new StreamReader(_stream); var content = reader.ReadToEnd(); _reset = true; _lock.Release(); return(content); case Mime.Category.Audio: case Mime.Category.Video: case Mime.Category.Image: case Mime.Category.Document: case Mime.Category.Unknown: _lock.Release(); return(Path); } _lock.Release(); return(string.Empty); }