Esempio n. 1
0
        /// <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);
        }