コード例 #1
0
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="writers">inject with all possible writers</param>
        public DataWriterProvider(IEnumerable <IDataWriter> writers)
        {
            if (writers != null)
            {
                foreach (IDataWriter writer in writers)
                {
                    if (this.DefaultWriter == null)
                    {
                        // TODO: decide less arbitrary way to choose default
                        // without hardcoding value into IDataWriter
                        this.DefaultWriter = writer;
                    }

                    if (!String.IsNullOrEmpty(writer.ContentType))
                    {
                        this.WritersByMime[writer.ContentType] = writer;
                    }

                    if (!String.IsNullOrEmpty(writer.ContentType))
                    {
                        string ext = DataWriterProvider.NormalizeExtension(writer.FileExtension);
                        this.WritersByExt[ext] = writer;
                    }
                }
            }
        }
コード例 #2
0
 public IDataWriter Find(string extension)
 {
     extension = DataWriterProvider.NormalizeExtension(extension);
     if (this.WritersByExt.ContainsKey(extension))
     {
         return(this.WritersByExt[extension]);
     }
     return(null);
 }
コード例 #3
0
 public DataWriterProvider(IEnumerable <IDataWriter> writers)
 {
     if (writers != null)
     {
         foreach (IDataWriter current in writers)
         {
             if (this.DefaultWriter == null)
             {
                 this.DefaultWriter = current;
             }
             if (!string.IsNullOrEmpty(current.ContentType))
             {
                 this.WritersByMime[current.ContentType] = current;
             }
             if (!string.IsNullOrEmpty(current.ContentType))
             {
                 string key = DataWriterProvider.NormalizeExtension(current.FileExtension);
                 this.WritersByExt[key] = current;
             }
         }
     }
 }