コード例 #1
0
        /// <summary>
        /// Creates a writer instance.
        /// </summary>
        /// <param name="type">The format to write in.</param>
        /// <param name="output">The output stream to write to.</param>
        /// <param name="customHandlers">Additional IWriteHandlers to use in addition
        /// to or in place of the default IWriteHandlers.</param>
        /// <returns>A writer</returns>
        /// <exception cref="System.NotImplementedException"></exception>
        /// <exception cref="System.ArgumentException">Unknown Writer type:  + type.ToString()</exception>
        public static IWriter <T> Writer <T>(Format type, Stream output, IDictionary <Type, IWriteHandler> customHandlers)
        {
            switch (type)
            {
            case Format.MsgPack:
                return(WriterFactory.GetMsgPackInstance <T>(output, customHandlers));

            case Format.Json:
                return(WriterFactory.GetJsonInstance <T>(output, customHandlers, false));

            case Format.JsonVerbose:
                return(WriterFactory.GetJsonInstance <T>(output, customHandlers, true));

            default:
                throw new ArgumentException("Unknown Writer type: " + type.ToString());
            }
        }